网站的开发环境论文,wordpress 页面 评论,域名注册局联系方式,义乌论坛https://leetcode.cn/problems/longest-increasing-subsequence/ 给你一个整数数组 nums #xff0c;找到其中最长严格递增子序列的长度。 子序列 是由数组派生而来的序列#xff0c;删除#xff08;或不删除#xff09;数组中的元素而不改变其余元素的顺序。例如#x… https://leetcode.cn/problems/longest-increasing-subsequence/ 给你一个整数数组 nums 找到其中最长严格递增子序列的长度。 子序列 是由数组派生而来的序列删除或不删除数组中的元素而不改变其余元素的顺序。例如[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序列。
示例 1
输入nums [10,9,2,5,3,7,101,18]
输出4
解释最长递增子序列是 [2,3,7,101]因此长度为 4 。示例 2
输入nums [0,1,0,3,2,3]
输出4示例 3
输入nums [7,7,7,7,7,7,7]
输出1题解
class Solution {
public:int lengthOfLIS(vectorint nums) {//动态规划 dp[i]为到i位置的最长严格递增子序列结果输出dp[n-1]vectorint dp(nums.size(),1);//最小值为1for(int i1;idp.size();i){for(int j0;ji;j){if(nums[i]nums[j])dp[i] max(dp[i],dp[j]1);}}int res 0;for(int i0;idp.size();i){cout dp[i],;res max(dp[i],res);}return res;}
};错解
#include stdio.h
#includevector
#includememory
#includeiostream
#includealgorithm
using namespace std;
class Solution {
public:int lengthOfLIS(vectorint nums) {//动态规划 dp[i]为到i位置的最长严格递增子序列结果输出dp[n-1]vectorint dp(nums.size(),1);//最小值为1for(int i1;idp.size();i){for(int j0;ji;j){if(nums[i]nums[j])dp[i] max(dp[i],dp[j]1);elsedp[i] 1;//前边没有更小的值了 应该去掉这个else部分}}int res 0;for(int i0;idp.size();i){cout dp[i],;res max(dp[i],res);}return res;}
};int main()
{vectorint arr {7,7,7,7,7,7,7};//{10,9,2,5,3,7,101,18};unique_ptrSolution mysolo unique_ptrSolution(new Solution());int res mysolo-lengthOfLIS(arr);coutresendl;return 0;
}