1748. Sum of Unique Elements

You are given an integer array nums. The unique elements of an array are the elements that appear exactly once in the array.

Return the sum of all the unique elements of nums.

 

Example 1:

Input: nums = [1,2,3,2]
Output: 4
Explanation: The unique elements are [1,3], and the sum is 4.

Example 2:

Input: nums = [1,1,1,1,1]
Output: 0
Explanation: There are no unique elements, and the sum is 0.

Example 3:

Input: nums = [1,2,3,4,5]
Output: 15
Explanation: The unique elements are [1,2,3,4,5], and the sum is 15.

 

Constraints:

  • 1 <= nums.length <= 100
  • 1 <= nums[i] <= 100

Rust Solution

struct Solution;

use std::collections::HashMap;

impl Solution {
    fn sum_of_unique(nums: Vec<i32>) -> i32 {
        let mut count: HashMap<i32, usize> = HashMap::new();
        for &x in &nums {
            *count.entry(x).or_default() += 1;
        }
        nums.into_iter()
            .map(|x| if count[&x] == 1 { x } else { 0 })
            .sum()
    }
}

#[test]
fn test() {
    let nums = vec![1, 2, 3, 2];
    let res = 4;
    assert_eq!(Solution::sum_of_unique(nums), res);
    let nums = vec![1, 1, 1, 1, 1];
    let res = 0;
    assert_eq!(Solution::sum_of_unique(nums), res);
    let nums = vec![1, 2, 3, 4, 5];
    let res = 15;
    assert_eq!(Solution::sum_of_unique(nums), res);
}

Having problems with this solution? Click here to submit an issue on github.