38 lines
854 B
Rust
38 lines
854 B
Rust
fn main() {
|
|
println!("Hello, world!");
|
|
let tests = [
|
|
(vec![100,4,200,1,3,2], 4),
|
|
(vec![0,3,7,2,5,8,4,6,0,1], 9)
|
|
];
|
|
|
|
for test in tests {
|
|
println!("{:?} is {} should be {}", test.0, Solution::longest_consecutive(test.0.clone()), test.1);
|
|
}
|
|
}
|
|
|
|
|
|
struct Solution;
|
|
|
|
impl Solution {
|
|
pub fn longest_consecutive(nums: Vec<i32>) -> i32 {
|
|
let mut s = nums.clone();
|
|
s.sort();
|
|
s.dedup();
|
|
let mut longest = (nums.len() > 0) as i32;
|
|
let mut longest_old = 0;
|
|
|
|
for i in s.windows(2) {
|
|
if &i[1] != &(&i[0] + 1) {
|
|
if longest > longest_old {
|
|
longest_old = longest;
|
|
}
|
|
longest = 1;
|
|
continue;
|
|
}
|
|
longest += 1;
|
|
}
|
|
|
|
longest.max(longest_old)
|
|
}
|
|
}
|