- 浏览: 183504 次
- 性别:
- 来自: 济南
文章分类
最新评论
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)的时间复杂度来解决,我们可以采用并查集的思想,当扫描到一个元素,我们从当前元素的两边开始处理,如果连续的都进行标记,同时维护一个最大值,再次扫描的时候如果被标记过的就可以跳过,这样我们就可以在O(n)的时间复杂度下找到最长的连续序列。代码如下:
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)的时间复杂度来解决,我们可以采用并查集的思想,当扫描到一个元素,我们从当前元素的两边开始处理,如果连续的都进行标记,同时维护一个最大值,再次扫描的时候如果被标记过的就可以跳过,这样我们就可以在O(n)的时间复杂度下找到最长的连续序列。代码如下:
public class Solution { public int longestConsecutive(int[] nums) { if(nums == null) return 0; HashMap<Integer, Integer> hm = new HashMap<Integer, Integer>(); int max = 1; for(int i : nums) hm.put(i, 0); for(int i = 0; i < nums.length; i++) { int count = 1; int left = -1; int right = 1; if(hm.get(nums[i]) == 1) continue; hm.put(nums[i], 1); while(hm.containsKey(nums[i] + left)) { hm.put(nums[i] + left, 1); count ++; left --; } while(hm.containsKey(nums[i] + right)) { hm.put(nums[i] + right, 1); count ++; right ++; } max = Math.max(max, count); } return max; } }
发表评论
-
498. Diagonal Traverse
2019-11-15 13:52 265Given a matrix of M x N eleme ... -
496 Next Greater Element I
2019-11-14 13:50 267You are given two arrays (witho ... -
Word Break II
2016-03-09 03:15 384Given a string s and a dictiona ... -
Insert Interval
2016-03-08 02:11 374Given a set of non-overlapping ... -
Merge Intervals
2016-03-07 05:25 497Given a collection of intervals ... -
Merge k Sorted Lists
2016-03-07 04:03 563Merge k sorted linked lists and ... -
Multiply Strings
2016-03-06 07:27 475Given two numbers represented a ... -
N-Queens II
2016-03-06 03:06 664Follow up for N-Queens problem. ... -
N-Queens
2016-03-06 02:47 469The n-queens puzzle is the prob ... -
First Missing Positive
2016-03-05 03:09 429Given an unsorted integer array ... -
Spiral Matrix
2016-03-04 03:39 575Given a matrix of m x n element ... -
Trapping Rain Water
2016-03-04 02:54 580Given n non-negative integers r ... -
Repeated DNA Sequences
2016-03-03 03:10 426All DNA is composed of a series ... -
Increasing Triplet Subsequence
2016-03-02 02:48 898Given an unsorted array return ... -
Maximum Product of Word Lengths
2016-03-02 01:56 930Given a string array words, fin ... -
LRU Cache
2016-02-29 10:37 602Design and implement a data str ... -
Super Ugly Number
2016-02-29 07:07 673Write a program to find the nth ... -
Longest Increasing Path in a Matrix
2016-02-29 05:56 842Given an integer matrix, find t ... -
Coin Change
2016-02-29 04:39 783You are given coins of differen ... -
Minimum Height Trees
2016-02-29 04:11 704For a undirected graph with tre ...
相关推荐
python python_leetcode题解之128_Longest_Consecutive_Sequence
javascript js_leetcode题解之128-longest-consecutive-sequence.js
Binary Tree Longest Consecutive Sequence等。这类题目通常要求读者使用树的各种操作来解决问题,例如树的遍历、查找、插入等操作。 4. 图类题目 图类题目是LeetCode原题中的一个复杂类题目,本文中涵盖了多个图...
合并排序数组, Valid Parentheses, 实现 strStr(), Set Matrix Zeroes, 搜索插入位置, Longest Consecutive Sequence, Valid Palindrome, 螺旋矩阵, 搜索一个二维矩阵, 旋转图像, 三角形, Distinct Subsequences ...
* Longest Consecutive Sequence Java:该题目要求找到最长的连续序列,实现方法使用了哈希表和迭代算法。 * Search a 2D Matrix:该题目要求在二维矩阵中查找元素,实现方法使用了二分查找算法。 * Rotate Image:...
LeetCode的第128题,名为"Longest Consecutive Sequence",要求找到给定无序整数数组中,最长的连续整数序列的长度。例如,对于输入数组 [100, 4, 200, 1, 3, 2],最长连续序列是 [1, 2, 3, 4],其长度为4。 首先,...
Consecutive Sequence 7 Two Sum Hash,夹逼均可 8 3Sum Hash法转换2sum 9 3Sum Closest Sort +夹逼法 10 4Sum Sort +夹逼法 11 Remove Element 12 Next Permutation 公式 13 Permutation Sequence 公式 14 Valid ...
4. **动态规划**:动态规划是一种用于求解最优化问题的策略,如"爬楼梯"(Climbing Stairs)和"最长连续序列"(Longest Consecutive Sequence)。通过构建状态转移方程,我们可以用递归或迭代的方式求解问题。 5. *...
4. **最长连续序列(Longest Consecutive Sequence)** - **问题描述**:给定一个未排序的整数数组,找出最长连续序列的长度。 - **解决方案**: - 使用哈希集合存储数组中的所有元素。 - 遍历数组中的每个元素...
java lru leetcode SDE-问题 标准 SDE 问题列表 第一天:(数组) 日 问题陈述 解决方案 困难 使用的数据结构 使用的算法 时间复杂度 空间复杂度 ...Longest Consecutive Sequence Longest Subarray w
2. **2.1.6 Longest Consecutive Sequence**:给定一个未排序的整数数组,找出其中最长连续序列的长度。 3. **2.1.7 Two Sum**:给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那两个...
- **2.1.6 Longest Consecutive Sequence** - 找出数组中最长的连续子序列。 - 实现思路:可以使用哈希表存储每个元素及其连续状态,然后遍历数组找到最长的连续序列。 - **2.1.7 Two Sum** - 寻找数组中两个数...
leetcode正方体收藏TakeUforward-SDE_180 要了解整个列表和其他内容,如项目、简历、如何进行面试……观看整个视频: 在以下位置找到展示位置系列: ...Consecutive Sequence Longest Subarray with 0 sum 给定
...The number of questions is increasing recently. Here is the classification of all `468` questions. ...I'll keep updating for full summary and better solutions....|-----|---------------- | --------------- |...
最长连续序列 描述 给定一个未排序的整数数组,请找出最长的连续元素序列的长度。 好吧,假设该任务仅与步长等于1的序列有关。 例如: 给定exampleArray = [100, 4, 200, 1, 3, 2] 100,4,200,1,3,2 [100, 4, ...
此外,"Leetcode-main"可能还包含了其他挑战,如“最长连续序列”(Longest Consecutive Sequence)来演示如何使用集合进行有效的状态追踪,或者“最大子数组和”(Maximum Subarray)来展示动态规划的应用。每个问题的...
5. **动态规划**:如“最长连续序列”(Longest Consecutive Sequence),要求找到一个无序整数数组中最长的连续子序列。 6. **回溯法**:如“全排列”(Permutations),要求列出所有可能的数组排列。 7. **堆和队列*...
5. **滑动窗口最大值/最小值**:例如“数组中的最长连续序列”(Longest Consecutive Sequence),哈希表可以帮助我们快速查询元素及其相邻元素的状态,从而找到最长连续序列。 6. **统计问题**:如“数组中出现...