11/**
22 * Remove duplicate values from a sequence, preserving the order of the first occurrence of each value.
33 *
4- * Time Complexity:
5- * Space Complexity:
6- * Optimal Time Complexity:
4+ * Time Complexity: O(N^2). It takes a loop inside a loop to compare duplicates.
5+ * Space Complexity: O(N). The uniqueItems array would grow to N in the worst case.
6+ * Optimal Time Complexity: O(N). It only loops once after optimization.
77 *
88 * @param {Array } inputSequence - Sequence to remove duplicates from
99 * @returns {Array } New sequence with duplicates removed
1010 */
11- export function removeDuplicates ( inputSequence ) {
12- const uniqueItems = [ ] ;
11+ // export function removeDuplicates(inputSequence) {
12+ // const uniqueItems = [];
13+
14+ // for (
15+ // let currentIndex = 0;
16+ // currentIndex < inputSequence.length;
17+ // currentIndex++
18+ // ) {
19+ // let isDuplicate = false;
20+ // for (
21+ // let compareIndex = 0;
22+ // compareIndex < uniqueItems.length;
23+ // compareIndex++
24+ // ) {
25+ // if (inputSequence[currentIndex] === uniqueItems[compareIndex]) {
26+ // isDuplicate = true;
27+ // break;
28+ // }
29+ // }
30+ // if (!isDuplicate) {
31+ // uniqueItems.push(inputSequence[currentIndex]);
32+ // }
33+ // }
1334
14- for (
15- let currentIndex = 0 ;
16- currentIndex < inputSequence . length ;
17- currentIndex ++
18- ) {
19- let isDuplicate = false ;
20- for (
21- let compareIndex = 0 ;
22- compareIndex < uniqueItems . length ;
23- compareIndex ++
24- ) {
25- if ( inputSequence [ currentIndex ] === uniqueItems [ compareIndex ] ) {
26- isDuplicate = true ;
27- break ;
28- }
29- }
30- if ( ! isDuplicate ) {
31- uniqueItems . push ( inputSequence [ currentIndex ] ) ;
32- }
33- }
35+ // return uniqueItems;
36+ // }
3437
35- return uniqueItems ;
36- }
38+ export function removeDuplicates ( inputSequence ) {
39+ return [ ...new Set ( inputSequence ) ] ;
40+ }
0 commit comments