您的位置:首页 > 编程语言 > Python开发

leetcode--最长连续递增序列--python

2019-05-20 15:53 801 查看

文章目录

  • 解题思路
  • 题目

    题目详情

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

    示例

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

    注意:数组长度不会超过10000。

    解题思路

    思路

    1. 递增的话就想到很久之前做的一道题,最大利益,就是有利可图
    2. 那么只要后面一个数大于前面一个数就是递增,否则不成立
    3. 那么结果用两个flag来比较,较大的为最终结果

    代码

    class Solution:
    def findLengthOfLCIS(self,nums):
    if not nums:return 0;      #判断事都为空
    flag = 1
    new_flag = 1
    for i in range(len(nums)-1):
    if nums[i+1]>nums[i]:     #判断是否为递增
    flag += 1
    new_flag = max(flag,new_flag)  #最大的递增序列
    else:                  #不为递增
    flag = 1
    return new_flag
    
    if __name__ == "__main__":
    obj = Solution()
    st = [1,3,5,4,7]
    obj.findLengthOfLCIS(st)

    运行结果

    最佳方案

    40ms

    class Solution:
    def findLengthOfLCIS(self, nums: 'List[int]') -> 'int':
    
    if not nums:
    return 0
    
    res = 1
    cnt = 1
    
    for i in range(1,len(nums)):
    if nums[i-1]>=nums[i]:
    cnt = 1
    else:
    cnt+=1
    res = max(res,cnt)
    
    return max(res,cnt)
    内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
    标签: