Skip to content

Commit 0878cdc

Browse files
authored
Update Restore the Array From Adjacent Pairs.java
1 parent 704e7c9 commit 0878cdc

File tree

1 file changed

+28
-22
lines changed

1 file changed

+28
-22
lines changed
Lines changed: 28 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,31 @@
11
class Solution {
2-
public int[] restoreArray(int[][] adjacentPairs) {
3-
Map<Integer, List<Integer>> map = new HashMap<>();
4-
for (int[] pair : adjacentPairs) {
5-
map.computeIfAbsent(pair[0], k -> new ArrayList<>()).add(pair[1]);
6-
map.computeIfAbsent(pair[1], k -> new ArrayList<>()).add(pair[0]);
2+
public int[] restoreArray(int[][] adjacentPairs) {
3+
int n = adjacentPairs.length + 1;
4+
Map<Integer, List<Integer>> map = new HashMap<>();
5+
for (int[] pair : adjacentPairs) {
6+
map.computeIfAbsent(pair[0], k -> new ArrayList<>()).add(pair[1]);
7+
map.computeIfAbsent(pair[1], k -> new ArrayList<>()).add(pair[0]);
8+
}
9+
Queue<Integer> queue = new LinkedList<>();
10+
int firstElement = map.entrySet()
11+
.stream()
12+
.filter(entry -> entry.getValue().size() == 1)
13+
.map(Map.Entry::getKey)
14+
.findFirst()
15+
.orElse(-1);
16+
queue.add(firstElement);
17+
Set<Integer> set = new HashSet<>();
18+
int[] result = new int[n];
19+
int idx = 0;
20+
while (!queue.isEmpty()) {
21+
int removed = queue.remove();
22+
if (set.contains(removed)) {
23+
continue;
24+
}
25+
result[idx++] = removed;
26+
set.add(removed);
27+
queue.addAll(map.get(removed));
28+
}
29+
return result;
730
}
8-
int head = map.keySet().stream().filter(k -> map.get(k).size() == 1).findFirst().orElse(-1);
9-
Set<Integer> visited = new HashSet<>();
10-
int[] result = new int[map.size()];
11-
int idx = 0;
12-
Queue<Integer> queue = new LinkedList<>();
13-
queue.add(head);
14-
while (!queue.isEmpty()) {
15-
int removed = queue.remove();
16-
if (visited.contains(removed)) {
17-
continue;
18-
}
19-
result[idx++] = removed;
20-
visited.add(removed);
21-
queue.addAll(map.get(removed));
22-
}
23-
return result;
24-
}
2531
}

0 commit comments

Comments
 (0)