昭通网站建设兼职,网站登录系统怎么做,箱包设计网站,网站什么做给定一个未排序的整数数组#xff0c;找出最长连续序列的长度。
要求算法的时间复杂度为 O(n)。
示例:
输入: [100, 4, 200, 1, 3, 2] 输出: 4 解释: 最长连续序列是 [1, 2, 3, 4]。它的长度为 4。
思路:存入map中#xff0c;每次以当前元素为序列的第一个数字#xff0…给定一个未排序的整数数组找出最长连续序列的长度。
要求算法的时间复杂度为 O(n)。
示例:
输入: [100, 4, 200, 1, 3, 2] 输出: 4 解释: 最长连续序列是 [1, 2, 3, 4]。它的长度为 4。
思路:存入map中每次以当前元素为序列的第一个数字依次向下寻炸有没有对应的元素
提交的代码
class Solution { public int longestConsecutive(int[] nums) { if(nums.length0) { return 0; } MapInteger,Integer map new HashMap(); int i; for(i0;inums.length;i) { map.put(nums[i], 1); } int sum1,max1,t; for(i0;inums.length;i) { if(!map.containsKey(nums[i]-1)) { t nums[i]; sum 1; while(map.containsKey(t1)) { sum; t; } } max Math.max(max, sum); } return max; }
}