码迷,mamicode.com
首页 > 其他好文 > 详细

【Leetcode】Longest Consecutive Sequence

时间:2015-01-07 10:58:06      阅读:191      评论:0      收藏:0      [点我收藏+]

标签:java   leetcode   

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.

想法比较直接,就是先排序,然后慢慢去里面遍历找连续的element。

需要注意这么几点:

1.如果数组里只有1个元素,那么直接回复1.

2.一定要考虑duplicate的情况,因为比如排序后为1,1,1,2,3,一定要跳过重复的元素。

程序如下:

package testAndfun;

import java.util.Arrays;

public class LongestConsecutiveSequence {
	public static void main(String[] args){
		LongestConsecutiveSequence lcs = new LongestConsecutiveSequence();
		int[] input = {1,0,-1,1};
		System.out.println(lcs.longestConsecutive(input));
	}
	public int longestConsecutive(int[] num) {
		if(num.length<=1)	return num.length;
        int count =1 ;
        int tmp=1;
        Arrays.sort(num);
        
        //System.out.println(Arrays.toString(num));
        int i=0;
        while(i<num.length-1){
        	if(num[i]==num[i+1]-1)	tmp++;
        	if(num[i]==num[i+1]){
        		if(tmp>count){
        			count = tmp;
        		}
        		i++;
        		continue;
        	}
        	if(num[i]!=num[i+1]-1 || i==num.length-2){
        		if(tmp>count)	{
        			count = tmp;
        		}
        		tmp =1;
        	}
        	i++;
        }
        return count;
    }
	
	}


【Leetcode】Longest Consecutive Sequence

标签:java   leetcode   

原文地址:http://blog.csdn.net/qbt4juik/article/details/42488879

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!