Skip to content

Commit 92f7dfb

Browse files
solves sum of unique elements
1 parent 7ae6166 commit 92f7dfb

File tree

2 files changed

+38
-1
lines changed

2 files changed

+38
-1
lines changed

Diff for: README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -427,7 +427,7 @@
427427
| 1732 | [Find the Highest Altitude](https://leetcode.com/problems/find-the-highest-altitude) | [![Java](assets/java.png)](src/FindTheHighestAltitude.java) | |
428428
| 1736 | [Latest Time by Replacing Hidden Digits](https://leetcode.com/problems/latest-time-by-replacing-hidden-digits) | [![Java](assets/java.png)](src/LatestTimeByReplacingHiddenDigits.java) | |
429429
| 1742 | [Maximum Number of Balls in a Box](https://leetcode.com/problems/maximum-number-of-balls-in-a-box) | [![Java](assets/java.png)](src/MaximumNumberOfBallsInABox.java) | |
430-
| 1748 | [Sum of Unique Elements](https://leetcode.com/problems/sum-of-unique-elements) | | |
430+
| 1748 | [Sum of Unique Elements](https://leetcode.com/problems/sum-of-unique-elements) | [![Java](assets/java.png)](src/SumOfUniqueElements.java) | |
431431
| 1752 | [Check if Array Is Sorted and Rotated](https://leetcode.com/problems/check-if-array-is-sorted-and-rotated) | | |
432432
| 1758 | [Minimum Changes To Make Alternating Binary String](https://leetcode.com/problems/minimum-changes-to-make-alternating-binary-string) | | |
433433
| 1763 | [Longest Nice Substring](https://leetcode.com/problems/longest-nice-substring) | | |

Diff for: src/SumOfUniqueElements.java

+37
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
import java.util.Collection;
2+
import java.util.HashMap;
3+
import java.util.HashSet;
4+
import java.util.Map;
5+
import java.util.Set;
6+
7+
public class SumOfUniqueElements {
8+
public int sumOfUnique(int[] nums) {
9+
final Set<Integer> uniqueElements = uniqueElements(nums);
10+
return sum(uniqueElements);
11+
}
12+
13+
private Set<Integer> uniqueElements(int[] array) {
14+
final Map<Integer, Integer> frequencies = getFrequencies(array);
15+
final Set<Integer> set = new HashSet<>();
16+
for (Map.Entry<Integer, Integer> entry : frequencies.entrySet()) {
17+
if (entry.getValue() == 1) set.add(entry.getKey());
18+
}
19+
return set;
20+
}
21+
22+
private Map<Integer, Integer> getFrequencies(int[] array) {
23+
final Map<Integer, Integer> frequencies = new HashMap<>();
24+
for (int element : array) {
25+
frequencies.put(element, frequencies.getOrDefault(element, 0) + 1);
26+
}
27+
return frequencies;
28+
}
29+
30+
private int sum(Collection<Integer> collection) {
31+
int sum = 0;
32+
for (int element : collection) {
33+
sum += element;
34+
}
35+
return sum;
36+
}
37+
}

0 commit comments

Comments
 (0)