做服装外单的网站,儿童教育网站源码,怎么买网站空间,西安市网站制作公司300.最长递增子序列
给你一个整数数组 nums #xff0c;找到其中最长严格递增子序列的长度。
子序列 是由数组派生而来的序列#xff0c;删除#xff08;或不删除#xff09;数组中的元素而不改变其余元素的顺序。例如#xff0c;[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子…300.最长递增子序列
给你一个整数数组 nums 找到其中最长严格递增子序列的长度。
子序列 是由数组派生而来的序列删除或不删除数组中的元素而不改变其余元素的顺序。例如[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序列。
class Solution {
public:int lengthOfLIS(vectorint nums) {vectorint dp(nums.size(),1);int result 1;for(int i 1;inums.size();i){for(int j 0;ji;j){if(nums[i]nums[j]) dp[i] max(dp[i],dp[j]1);}result max(result,dp[i]);}return result;}
};
674. 最长连续递增序列
给定一个未经排序的整数数组找到最长且 连续递增的子序列并返回该序列的长度。
连续递增的子序列 可以由两个下标 l 和 rl r确定如果对于每个 l i r都有 nums[i] nums[i 1] 那么子序列 [nums[l], nums[l 1], ..., nums[r - 1], nums[r]] 就是连续递增子序列。
class Solution {
public:int findLengthOfLCIS(vectorint nums) {vectorint dp(nums.size(),1);int result 1;for(int i 1;inums.size();i){if(nums[i] nums[i-1]) dp[i] dp[i-1]1;result max(result,dp[i]);}return result;}
};
718. 最长重复子数组
给两个整数数组 nums1 和 nums2 返回 两个数组中 公共的 、长度最长的子数组的长度 。
class Solution {
public:int findLength(vectorint nums1, vectorint nums2) {vectorvectorint dp(nums1.size()1,vectorint(nums2.size()1,0));int result 0;for(int i 0;inums1.size();i){for(int j 0;jnums2.size();j){if(nums1[i] nums2[j]) dp[i1][j1] dp[i][j] 1;result max(result,dp[i1][j1]);}}return result;}
};