rustgym/leetcode/
_128_longest_consecutive_sequence.rs1struct Solution;
2use std::collections::HashSet;
3use std::iter::FromIterator;
4
5impl Solution {
6 fn longest_consecutive(nums: Vec<i32>) -> i32 {
7 if nums.is_empty() {
8 return 0;
9 }
10 let hs: HashSet<i32> = HashSet::from_iter(nums);
11 let mut res = 0;
12 for &x in &hs {
13 if hs.contains(&(x - 1)) {
14 continue;
15 }
16 let mut i = 1;
17 while hs.contains(&(x + i)) {
18 i += 1;
19 res = res.max(i);
20 }
21 }
22 res
23 }
24}
25
26#[test]
27fn test() {
28 let nums = vec![100, 4, 200, 1, 3, 2];
29 let res = 4;
30 assert_eq!(Solution::longest_consecutive(nums), res);
31}