aboutsummaryrefslogtreecommitdiff
path: root/unique_num_occurrences.rs
blob: d29c58034cf9fe0a20d17086e809d386fa4f1c57 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
struct Solution;

impl Solution {
    pub fn unique_occurrences(arr: Vec<i32>) -> bool {
        let (mut counter, mut set) = ([0; 2001], [false; 1000]);
        arr.iter().for_each(|&x| counter[(x + 1000) as usize] += 1);
        for &x in counter.iter().filter(|&&x| x > 0) {
            match set[x as usize] {
                true => return false,
                false => set[x as usize] = true
            }
        }
        true
    }
}

fn main() {
    let arr = vec![1,2,2,1,1,3];
    print!("{}", Solution::unique_occurrences(arr));
}