leetCode练习(128)

来源:互联网 发布:全国网络平台监管系统 编辑:程序博客网 时间:2024/06/06 12:54

题目:Longest Consecutive Sequence

难度:hard

问题描述:

Given an unsorted array of integers, find the length of the longest consecutive elements sequence.

For example,
Given [100, 4, 200, 1, 3, 2],
The longest consecutive elements sequence is [1, 2, 3, 4]. Return its length:4.

Your algorithm should run in O(n) complexity.

解题思路:

很容易的一道题,不知道为啥是hard~ 先将数组排序成[1,2,3,4,100,200],然后遍历找到最大连续组即可。其中注意重复的数要剔除即可。

代码如下:

public class Solution {    public int longestConsecutive(int[] nums) {        if(nums==null) return 0;int len=nums.length;if(len<=1)return len;        Arrays.sort(nums);                int res=1;        int temp=nums[0];        int cha;        int count=1;        for(int i=1;i<len;i++){        cha=nums[i]-temp;        if(cha==0) continue;        if(cha==1){        temp++;        count++;        }else{        res=res>count?res:count;                count=1;        temp=nums[i];        }        }         res=res>count?res:count;        return res;    }}

0 0