Skip to content

Commit 99c3f0e

Browse files
committed
Add solution #128
1 parent 88d3c99 commit 99c3f0e

File tree

2 files changed

+32
-0
lines changed

2 files changed

+32
-0
lines changed

README.md

+1
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@
5454
118|[Pascal's Triangle](./0118-pascals-triangle.js)|Easy|
5555
119|[Pascal's Triangle II](./0119-pascals-triangle-ii.js)|Easy|
5656
121|[Best Time to Buy and Sell Stock](./0121-best-time-to-buy-and-sell-stock.js)|Easy|
57+
128|[Longest Consecutive Sequence](./0128-longest-consecutive-sequence.js)|Medium|
5758
133|[Clone Graph](./0133-clone-graph.js)|Medium|
5859
136|[Single Number](./0136-single-number.js)|Easy|
5960
141|[Linked List Cycle](./0141-linked-list-cycle.js)|Easy|
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
/**
2+
* 128. Longest Consecutive Sequence
3+
* https://leetcode.com/problems/longest-consecutive-sequence/
4+
* Difficulty: Medium
5+
*
6+
* Given an unsorted array of integers nums, return the length of the
7+
* longest consecutive elements sequence.
8+
*
9+
* You must write an algorithm that runs in O(n) time.
10+
*/
11+
12+
/**
13+
* @param {number[]} nums
14+
* @return {number}
15+
*/
16+
var longestConsecutive = function(nums) {
17+
const set = new Set(nums);
18+
let result = 0;
19+
20+
for (let i = 0; i < nums.length; i++) {
21+
if (!set.has(nums[i] - 1)) {
22+
let streak = 1;
23+
while (set.has(nums[i] + streak)) {
24+
streak++;
25+
}
26+
result = Math.max(result, streak);
27+
}
28+
}
29+
30+
return result;
31+
};

0 commit comments

Comments
 (0)