| @@ -0,0 +1,20 @@ | |||
| use std::collections::HashMap; | |||
| pub fn unique_occurrences(arr: Vec<i32>) -> bool { | |||
| let mut hm = HashMap::<i32, i32>::new(); | |||
| for n in arr { | |||
| let count = hm.entry(n).or_insert(0); | |||
| *count += 1; | |||
| } | |||
| let mut vals: Vec<&i32> = hm.values().collect(); | |||
| vals.sort(); | |||
| let og_length = vals.len(); | |||
| vals.dedup_by_key(|i| *i); | |||
| let new_length = vals.len(); | |||
| og_length == new_length | |||
| } | |||
| pub fn main() { | |||
| println!("Expected: true"); | |||
| println!("Got: {}", unique_occurrences(vec![1, 2, 2, 3, 3, 3])); | |||
| } | |||
| @@ -0,0 +1,27 @@ | |||
| Given an array of integers arr, write a function that returns true if and only if the number of occurrences of each value in the array is unique. | |||
| Example 1: | |||
| Input: arr = [1,2,2,1,1,3] | |||
| Output: true | |||
| Explanation: The value 1 has 3 occurrences, 2 has 2 and 3 has 1. No two values have the same number of occurrences. | |||
| Example 2: | |||
| Input: arr = [1,2] | |||
| Output: false | |||
| Example 3: | |||
| Input: arr = [-3,0,1,-3,1,1,1,-3,10,0] | |||
| Output: true | |||
| Constraints: | |||
| 1 <= arr.length <= 1000 | |||
| -1000 <= arr[i] <= 1000 | |||
| @@ -0,0 +1,5 @@ | |||
| #!/bin/bash | |||
| rustc main.rs | |||
| ./main | |||
| rm main | |||