Leetcode 674. 最长连续递增序列

时间:2019-10-28
本文章向大家介绍Leetcode 674. 最长连续递增序列,主要包括Leetcode 674. 最长连续递增序列使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

题目要求:

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

输入: [1,3,5,4,7]
输出: 3
解释: 最长连续递增序列是 [1,3,5], 长度为3。
尽管 [1,3,5,7] 也是升序的子序列, 但它不是连续的,因为5和7在原数组里被4隔开。

代码:

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

题解:

采用一个数组保存每一个位置的递增子序列长度,然后对这些数字进行排序,求出最大的数。

其实还有更好的办法,不需要数组来保存子序列长度,因为只关心最长的那一个,
1,可以用一个变量_max保存最大的长度,
2,在每次连续序列被破坏时,用当前_count 与 _max比较,取最大的赋值给_max,并且重置当前的_count=1.

原文地址:https://www.cnblogs.com/leyang2019/p/11750790.html