day 43 第九章 动态规划part10 300.最长递增子序列 674. 最长连续递增序列 718. 最长重复子数组

买卖股票问题结束,进入动态规划的最长子序列问题。想想之前的章节还落下不少,得找时间补呀。

任务日期:7.18

题目一链接:300. 最长递增子序列 - 力扣(LeetCode)

思路:设置一个一维dp数组dp[i],代表以nums[i]为结尾的最长递增子序列的长度,而次长度并非最大长度。

代码:

class Solution {
public:
    int lengthOfLIS(vector& nums) {
        if(nums.size() == 1) return 1;

        int result = 0;
        int len = nums.size();
        vector dp(len,1); //定义dp[i]:以nums[i]为结尾的最长递增子序列的长度   每一个数都相当于以他开始的递增子序列的第一个数,所以初始化为1
        for(int i = 1;i < len;i ++) { //从dp数组的第二个位置开始遍历,因为第一个数肯定是1,因为从左往右的顺序不能变,只能进行删减
            for(int j = 0;j < i;j ++) { 
                if(nums[i] > nu

你可能感兴趣的:(动态规划,算法)