题目
思路
- 通过哈希表来记录当前的key的最长连续长度,由于是连续的我们可以巧妙根据左右连续长度,更新两端当前最长度
代码
最长连续序列public int longestConsecutive(int[] nums) {HashMap<Integer, Integer> map = new HashMap<>();int max = 0;for (int i = 0; i < nums.length; i++) {if (map.containsKey(nums[i])) continue;int cur = 1, left = 0, right = 0;left = map.getOrDefault(nums[i] - 1, 0);right = map.getOrDefault(nums[i] + 1, 0);cur += left + right;map.put(nums[i] - left, cur);map.put(nums[i] + right, cur);map.put(nums[i], cur);max = Math.max(max, cur);}return max;}
