Diff Viewer
Compare original code against optimized versions
11 added
9 removed
Original
// Slow: nested loop to find duplicates
function findDuplicates(arr) {
var duplicates = [];
for (var i = 0; i < arr.length; i++) {
for (var j = i + 1; j < arr.length; j++) {
if (arr[i] == arr[j]) {
duplicates.push(arr[i]);
}
}
}
return duplicates;
}Optimized
// Fast: Set-based O(n) approach
function findDuplicates(arr) {
const seen = new Set();
const duplicates = new Set();
for (const item of arr) {
if (seen.has(item)) {
duplicates.add(item);
}
seen.add(item);
}
return [...duplicates];
}Unified Diff
1
-
// Slow: nested loop to find duplicates
1
+
// Fast: Set-based O(n) approach
2
2
function findDuplicates(arr) {3
-
var duplicates = [];
4
-
for (var i = 0; i < arr.length; i++) {5
-
for (var j = i + 1; j < arr.length; j++) {6
-
if (arr[i] == arr[j]) {7
-
duplicates.push(arr[i]);
3
+
const seen = new Set();
4
+
const duplicates = new Set();
8
-
}
5
+
6
+
for (const item of arr) {7
+
if (seen.has(item)) {8
+
duplicates.add(item);
9
9
}
10
+
seen.add(item);
10
11
}
11
-
return duplicates;
12
-
}
12
+
13
+
return [...duplicates];
14
+
}