Welcome to Subscribe On Youtube
Formatted question description: https://leetcode.ca/all/1748.html
1748. Sum of Unique Elements
Level
Easy
Description
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
Solution
Use a hash map to store each number’s occurrence in nums
. Then loop over the hash map and calculate the sum of the elements that occur only once.
-
class Solution { public int sumOfUnique(int[] nums) { Map<Integer, Integer> map = new HashMap<Integer, Integer>(); for (int num : nums) { int count = map.getOrDefault(num, 0) + 1; map.put(num, count); } int sum = 0; Set<Integer> set = map.keySet(); for (int num : set) { int count = map.get(num); if (count == 1) sum += num; } return sum; } } ############ class Solution { public int sumOfUnique(int[] nums) { int[] cnt = new int[101]; for (int x : nums) { ++cnt[x]; } int ans = 0; for (int x = 0; x < 101; ++x) { if (cnt[x] == 1) { ans += x; } } return ans; } }
-
// OJ: https://leetcode.com/problems/sum-of-unique-elements/ // Time: O(N) // Space: O(N) class Solution { public: int sumOfUnique(vector<int>& A) { unordered_map<int, int> m; for (int n : A) m[n]++; int ans = 0; for (auto &[n, cnt] : m) { if (cnt == 1) ans += n; } return ans; } };
-
class Solution: def sumOfUnique(self, nums: List[int]) -> int: counter = Counter(nums) return sum(num for num, cnt in counter.items() if cnt == 1) ############ # 1748. Sum of Unique Elements # https://leetcode.com/problems/sum-of-unique-elements/ class Solution: def sumOfUnique(self, nums: List[int]) -> int: cnt = Counter(nums) return sum(n for n in cnt if cnt[n] == 1)
-
func sumOfUnique(nums []int) (ans int) { cnt := [101]int{} for _, x := range nums { cnt[x]++ } for x := 0; x < 101; x++ { if cnt[x] == 1 { ans += x } } return }
-
function sumOfUnique(nums: number[]): number { const cnt = new Array(101).fill(0); for (const x of nums) { ++cnt[x]; } let ans = 0; for (let x = 0; x < 101; ++x) { if (cnt[x] == 1) { ans += x; } } return ans; }
-
impl Solution { pub fn sum_of_unique(nums: Vec<i32>) -> i32 { let mut cnt = [0; 101]; for x in nums { cnt[x as usize] += 1; } let mut ans = 0; for x in 1..101 { if cnt[x] == 1 { ans += x; } } ans as i32 } }
-
class Solution { /** * @param Integer[] $nums * @return Integer */ function sumOfUnique($nums) { $sum = 0; for ($i = 0; $i < count($nums); $i++) { $hashtable[$nums[$i]] += 1; if ($hashtable[$nums[$i]] == 1) $sum += $nums[$i]; if ($hashtable[$nums[$i]] == 2) $sum -= $nums[$i]; } return $sum; } }