LeetCode674:最长连续递增序列

题目描述

给定一个未经排序的整数数组,找到最长且 连续递增的子序列,并返回该序列的长度。

连续递增的子序列 可以由两个下标 l 和 r(l < r)确定,如果对于每个 l <= i < r,都有 nums[i] < nums[i + 1] ,那么子序列 [nums[l], nums[l + 1], ..., nums[r - 1], nums[r]] 就是连续递增子序列。

代码

cpp 复制代码
/*
    dp[i]:以下标i为结尾的连续递增的子序列长度为dp[i]。
    
    递推公式 
        if(nums[i]>nums[i-1]) dp[i] = dp[i-1] + 1;

    初始化
        dp[i] = 1

    遍历顺序
        for(int i=0;i<nums.size();i++)
               

*/


class Solution {
public:
    int findLengthOfLCIS(vector<int>& nums) {
        if (nums.size() == 0) return 0;
        int result = 1;
        vector<int> dp(nums.size(), 1);
        for (int i = 1; i < nums.size(); i++) {
            if (nums[i] > nums[i - 1])
                dp[i] = dp[i - 1] + 1;

        }
        return *max_element(dp.begin(), dp.end());
    }
};
相关推荐
重生之我是Java开发战士7 小时前
【优选算法】前缀和:一二维前缀和,寻找数组的中心下标,除自身以外数组的乘积,和为K的子数组,和可被K整除的子数组,连续数组,矩阵区域和
线性代数·算法·矩阵
梵刹古音7 小时前
【C语言】 循环结构
c语言·开发语言·算法
bbq粉刷匠8 小时前
Java-排序2
java·数据结构·排序算法
皮皮哎哟8 小时前
冒泡排序与数组传递全解析 一维二维指针数组及二级指针应用指南
c语言·算法·冒泡排序·二维数组·指针数组·传参·二级指针
m0_561359678 小时前
C++代码冗余消除
开发语言·c++·算法
近津薪荼8 小时前
优选算法——滑动窗口1(单调性)
c++·学习·算法
diediedei8 小时前
嵌入式C++驱动开发
开发语言·c++·算法
燃于AC之乐8 小时前
《算法实战笔记》第10期:六大算法实战——枚举、贪心、并查集、Kruskal、双指针、区间DP
算法·贪心算法·图论·双指针·区间dp·二进制枚举
diediedei8 小时前
高性能计算通信库
开发语言·c++·算法
蒸蒸yyyyzwd8 小时前
算法学习笔记
笔记·算法