From 7d3bd3a86432353ab8af68207212d892a013fb81 Mon Sep 17 00:00:00 2001 From: Jaehyeon Robert Han Date: Tue, 10 Dec 2024 15:54:34 -0800 Subject: [PATCH 1/8] contains-duplicate solution --- contains-duplicate/Zioq.js | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 contains-duplicate/Zioq.js diff --git a/contains-duplicate/Zioq.js b/contains-duplicate/Zioq.js new file mode 100644 index 000000000..86cf6198d --- /dev/null +++ b/contains-duplicate/Zioq.js @@ -0,0 +1,28 @@ +/** + * @param {number[]} nums + * @return {boolean} + */ +var containsDuplicate = function(nums) { + let dup_set = new Set(); // Initialize Set + for (let num of nums) { + dup_set.add(num) // Add value into the set (duplicated value will be ignored) + } + + if(dup_set.size !== nums.length) { + return true + } + return false +}; + +/* + Space Complexity - O(n) - Create a set to store elements + Time Complexity - O(n) - Traverse through the array +*/ + + +/* Test code */ +console.log(containsDuplicate([1, 2, 3, 1])); // true +console.log(containsDuplicate([1, 2, 3, 4])); // false +console.log(containsDuplicate([1, 1, 1, 3, 3, 4, 3, 2, 4, 2])); // true + + From cd0087a36aa693111a6aa34f22dccb117dd38504 Mon Sep 17 00:00:00 2001 From: Jaehyeon Robert Han Date: Tue, 10 Dec 2024 15:55:31 -0800 Subject: [PATCH 2/8] top-k-frequent-elements solution --- top-k-frequent-elements/Zioq.js | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 top-k-frequent-elements/Zioq.js diff --git a/top-k-frequent-elements/Zioq.js b/top-k-frequent-elements/Zioq.js new file mode 100644 index 000000000..d24310275 --- /dev/null +++ b/top-k-frequent-elements/Zioq.js @@ -0,0 +1,30 @@ +/** + * @param {number[]} nums + * @param {number} k + * @return {number[]} + */ +var topKFrequent = function(nums, k) { + + const map = new Map(); + let arr = [] + + nums.forEach( e => { + if(map.has(e)) { + let current_value = map.get(e) + map.set(e, current_value +1) + } else { + map.set(e, 1) + } + }) + const store = [...map.entries()].sort((a,b) => b[1] - a[1]) + for( let i = 0 ; i < k && i < store.length ; i++ ) { + arr.push(store[i][0]) + } + return arr + +}; + + +/* Test code */ +console.log(topKFrequent([1,1,1,2,2,3],2)); // true +console.log(topKFrequent([1,2],1)); // true From cf8bb2900000a86790a09d4fd8f30c9fe76d0a3a Mon Sep 17 00:00:00 2001 From: Jaehyeon Robert Han Date: Tue, 10 Dec 2024 15:55:59 -0800 Subject: [PATCH 3/8] valid-palindrome solution --- valid-palindrome/Zioq.js | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 valid-palindrome/Zioq.js diff --git a/valid-palindrome/Zioq.js b/valid-palindrome/Zioq.js new file mode 100644 index 000000000..36fce16fb --- /dev/null +++ b/valid-palindrome/Zioq.js @@ -0,0 +1,33 @@ +/** + * @param {string} s + * @return {boolean} + */ +var isPalindrome = function(s) { + + let text = s.replace(/[^0-9a-z]/gi, ''); + text = text.replace(/\s/g, '').toLowerCase(); + + const str_arr = text.split(""); + if( str_arr % 2 === 1 ) { + return false; + } + + let length = str_arr.length - 1 ; + for ( const [i, value] of str_arr.entries()) { + if( value == str_arr[length -i] ) continue; + if(value != str_arr[length - i]) { + return false + } + } + return true; +}; + +/* + Space Complexity - O(n) - Create a array to store elements + Time Complexity - O(n) - Traverse through the array +*/ + +/* Test code */ +console.log(isPalindrome("A man, a plan, a canal: Panama")); // true +console.log(isPalindrome("race a car")); // false +console.log(isPalindrome(" ")); // true From e4c38400d0b13935c797ccfad8be6f98d66629d1 Mon Sep 17 00:00:00 2001 From: Jaehyeon Robert Han Date: Tue, 10 Dec 2024 18:05:53 -0800 Subject: [PATCH 4/8] longest-consecutive-sequence solution --- longest-consecutive-sequence/Zioq.js | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 longest-consecutive-sequence/Zioq.js diff --git a/longest-consecutive-sequence/Zioq.js b/longest-consecutive-sequence/Zioq.js new file mode 100644 index 000000000..5058244e1 --- /dev/null +++ b/longest-consecutive-sequence/Zioq.js @@ -0,0 +1,25 @@ +/** + * @param {number[]} nums + * @return {number} + */ +var longestConsecutive = function(nums) { + if(nums.length === 0) return 0 + let set = new Set(); + for(const n of nums) { + set.add(n); + } + let max = 0; + for(let n of set) { + if(!set.has(n-1)) { + let count = 0; + while(set.has(n++)) { + count++; + } + max = Math.max(max, count); + } + } + return max; +}; + +/* Test code */ +console.log(longestConsecutive([9,1,4,7,3,-1,0,5,8,-1,6])); // true \ No newline at end of file From 88ef3903cfa582e91e16b0b613f2a0aeb9b08551 Mon Sep 17 00:00:00 2001 From: Jaehyeon Robert Han Date: Tue, 10 Dec 2024 18:08:55 -0800 Subject: [PATCH 5/8] update last line --- longest-consecutive-sequence/Zioq.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/longest-consecutive-sequence/Zioq.js b/longest-consecutive-sequence/Zioq.js index 5058244e1..a563f0575 100644 --- a/longest-consecutive-sequence/Zioq.js +++ b/longest-consecutive-sequence/Zioq.js @@ -22,4 +22,4 @@ var longestConsecutive = function(nums) { }; /* Test code */ -console.log(longestConsecutive([9,1,4,7,3,-1,0,5,8,-1,6])); // true \ No newline at end of file +console.log(longestConsecutive([9,1,4,7,3,-1,0,5,8,-1,6])); // true From 2f505d96055ad6d195f8f350faecfcd0df68db7a Mon Sep 17 00:00:00 2001 From: Jaehyeon Robert Han Date: Thu, 12 Dec 2024 22:54:35 -0800 Subject: [PATCH 6/8] house-robber Solution --- house-robber/Zioq.js | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 house-robber/Zioq.js diff --git a/house-robber/Zioq.js b/house-robber/Zioq.js new file mode 100644 index 000000000..7134400d0 --- /dev/null +++ b/house-robber/Zioq.js @@ -0,0 +1,27 @@ +/** + * @param {number[]} nums + * @return {number} + */ +var rob = function(nums) { + if( nums.length < 1 ) { return nums[0]} + + let prev_2 = nums[0] + let prev_1 = Math.max(nums[0], nums[1]); + + for( let i= 2; i Date: Thu, 12 Dec 2024 23:02:02 -0800 Subject: [PATCH 7/8] update code --- contains-duplicate/Zioq.js | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/contains-duplicate/Zioq.js b/contains-duplicate/Zioq.js index 86cf6198d..1854906cb 100644 --- a/contains-duplicate/Zioq.js +++ b/contains-duplicate/Zioq.js @@ -3,15 +3,19 @@ * @return {boolean} */ var containsDuplicate = function(nums) { - let dup_set = new Set(); // Initialize Set - for (let num of nums) { - dup_set.add(num) // Add value into the set (duplicated value will be ignored) - } - - if(dup_set.size !== nums.length) { - return true - } - return false + let dup_set = new Set(nums); // Initialize Set + return dup_set.size !== nums.length + + + /* Previous Code before the review */ + // for (let num of nums) { + // dup_set.add(num) // Add value into the set (duplicated value will be ignored) + // } + + // if(dup_set.size !== nums.length) { + // return true + // } + // return false }; /* From 8ea0678e98b19308528f1090b97846aaa52c7a09 Mon Sep 17 00:00:00 2001 From: Jaehyeon Robert Han Date: Thu, 12 Dec 2024 23:09:19 -0800 Subject: [PATCH 8/8] add line --- house-robber/Zioq.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/house-robber/Zioq.js b/house-robber/Zioq.js index 7134400d0..214adce87 100644 --- a/house-robber/Zioq.js +++ b/house-robber/Zioq.js @@ -25,3 +25,5 @@ SC: O(1) /* Test Case */ console.log(rob([1,2,3,1])); console.log(rob([2,7,9,3,1])); + +