首页 > 其他 > 详细

LeetCode0128.最长连续序列

时间:2020-06-06 14:16:05      阅读:36      评论:0      收藏:0      [点我收藏+]

题目要求

技术分享图片

 

 

算法分析

思路:

找到连续数字集合的起点,然后对数字进行加1操作,直到该数字不存在与数组中为止,然后判断该连续数字集合的长度是否为最长

可以利用哈希表查找数字是否存在,减少时间复杂度.

代码展示(C#)

public class Solution {
    List<int> list = new List<int>();    
    public int LongestConsecutive(int[] nums) {
        
        for(int i = 0; i < nums.Length; i++){
            if(!list.Contains(nums[i])){
                list.Add(nums[i]);
            }
        }

        int max = 0;
        int num = 0;
        int length = 0;

        foreach(int i in list){
            num = i;
            length = 1;
            if(!list.Contains(num-1)){
                while(list.Contains(num+1)){
                    num++;
                    length++;
                }
            }
            max = Math.Max(length,max);
        }

        return max;
    }
}

 

提交结果

技术分享图片

 

LeetCode0128.最长连续序列

原文:https://www.cnblogs.com/KingR/p/13054350.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!