zoukankan      html  css  js  c++  java
  • [LeetCode] 674. Longest Continuous Increasing Subsequence 最长连续递增序列

    Given an unsorted array of integers, find the length of longest continuous increasing subsequence (subarray).

    Example 1:

    Input: [1,3,5,4,7]
    Output: 3
    Explanation: The longest continuous increasing subsequence is [1,3,5], its length is 3. 
    Even though [1,3,5,7] is also an increasing subsequence, it's not a continuous one where 5 and 7 are separated by 4.  

    Example 2:

    Input: [2,2,2,2,2]
    Output: 1
    Explanation: The longest continuous increasing subsequence is [2], its length is 1. 

    Note: Length of the array will not exceed 10,000.

    给一个没有排序的整数数组,找出最长的连续递增子序列(子数组)。

    Java:

    public int findLengthOfLCIS(int[] nums) {
            int res = 0, cnt = 0;
            for(int i = 0; i < nums.length; i++){
                if(i == 0 || nums[i-1] < nums[i]) res = Math.max(res, ++cnt);
                else cnt = 1;
            }
            return res;
        }  

    Python:

    class Solution(object):
        def findLengthOfLCIS(self, nums):
            """
            :type nums: List[int]
            :rtype: int
            """
            result, count = 0, 0
            for i in xrange(len(nums)):
                if i == 0 or nums[i-1] < nums[i]:
                    count += 1
                    result = max(result, count)
                else:
                    count = 1
            return result  

    Python: wo

    class Solution(object):
        def findLengthOfLCIS(self, nums):
            """
            :type nums: List[int]
            :rtype: int
            """
            if not nums:
                return 0
            
            n = len(nums)
            dp = [0] * n
            dp[0] = 1
            longest = 1
            for i in xrange(1, n):
                if nums[i] > nums[i-1]:
                    dp[i] = dp[i-1] + 1
                else:
                    dp[i] = 1
                longest = max(longest, dp[i])
      
            return longest  
    

    C++:

    int findLengthOfLCIS(vector<int>& nums) {
            int res = 0, cnt = 0;
            for(int i = 0; i < nums.size(); i++){
                if(i == 0 || nums[i-1] < nums[i]) res = max(res, ++cnt);
                else cnt = 1;
            }
            return res;
        }
    

     

    类似题目:

    [LeetCode] 300. Longest Increasing Subsequence 最长递增子序列

    [LeetCode] 673. Number of Longest Increasing Subsequence 最长递增序列的个数

      

    All LeetCode Questions List 题目汇总

  • 相关阅读:
    实验6.1
    SOA
    python的镜像包安装
    中文分词:双向匹配最大算法(BI-MM)
    从github中获取代码
    解决文件冲突
    创建分支
    上传本地文件到github
    mysql事务
    查询练习2
  • 原文地址:https://www.cnblogs.com/lightwindy/p/9721746.html
Copyright © 2011-2022 走看看