《leetcode》longest-consecutive-sequence
生活随笔
收集整理的這篇文章主要介紹了
《leetcode》longest-consecutive-sequence
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目: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.
解析:題目的意思是求最長的連續子序列長度,當然要求時間復雜度為O(n)。
import java.util.Arrays; public class Solution {public int longestConsecutive(int[] num) {if(num.length==1){return 1;}int max=0;//最大的長度int count=1;//給當前連續的元素計數Arrays.sort(num);//先來個排序for(int i=1;i<num.length;i++){if((num[i]==num[i-1]+1)){//當前的元素是前一個元素+1count++;if(count>=max){max=count;}}else if ((num[i]==num[i-1])){//當前的元素和前一個元素一樣,不計數if(count>=max){max=count;}continue;}else{//當前的元素不等于前一個元素,重新計數count=1;if(count>=max){max=count;}}}return max;} }總結
以上是生活随笔為你收集整理的《leetcode》longest-consecutive-sequence的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《程序员面试金典》输出单层节点
- 下一篇: 《程序员面试金典》最大连续数列和