From fcd28560581f1c233d9cc800d1aa81e7df0d74f2 Mon Sep 17 00:00:00 2001 From: Wakidur Rahaman Date: Mon, 5 Dec 2022 12:41:24 +0900 Subject: [PATCH] update hash --- .../hash-tables/hash-tables-04.ts | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/src/course-master-the-coding/data-structures/hash-tables/hash-tables-04.ts b/src/course-master-the-coding/data-structures/hash-tables/hash-tables-04.ts index bb8c37e..85f3928 100644 --- a/src/course-master-the-coding/data-structures/hash-tables/hash-tables-04.ts +++ b/src/course-master-the-coding/data-structures/hash-tables/hash-tables-04.ts @@ -24,7 +24,7 @@ function firstRecurringCharacter(array: number[]): number | undefined { } console.log('Nothing match : undefined'); return undefined; -} +} // O(n^2) // Solution 02: function firstRecurringCharacter2(array: number[]): undefined | number { @@ -33,8 +33,7 @@ function firstRecurringCharacter2(array: number[]): undefined | number { const element = array[i]; console.log(element); console.log(KeysMap); - // if (KeysMap[array[i]] !== undefined) { - if (KeysMap[array[i]] === i) { + if (KeysMap[array[i]] !== undefined) { console.log(KeysMap[array[i]], i); return array[i]; } else { @@ -42,7 +41,18 @@ function firstRecurringCharacter2(array: number[]): undefined | number { } } return undefined; -} +} // O(n) + +// Solution 02: +const firstRecurringCharacter3 = (array: number[]): undefined | number => { + const set: Set = new Set(); + for (let i = 0; i < array.length; i++) { + if (set.has(array[i])) return array[i]; + + set.add(array[i]); + } + return undefined; +}; // O(n) const array01 = [2, 5, 1, 2, 3, 5, 1, 2, 4]; const array02 = [2, 1, 1, 2, 3, 5, 1, 2, 4];