From 6a517bb36be8ecd32907e40eb50a2e446bc4a890 Mon Sep 17 00:00:00 2001 From: NabeelMS01 Date: Mon, 17 Mar 2025 20:43:06 +0530 Subject: [PATCH 01/12] initial commit --- read-me.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 read-me.md diff --git a/read-me.md b/read-me.md new file mode 100644 index 0000000..e69de29 From 179e47cd7c763750eeec78b8d31e8662323a1ac6 Mon Sep 17 00:00:00 2001 From: NabeelMS01 Date: Mon, 17 Mar 2025 20:47:06 +0530 Subject: [PATCH 02/12] read me added --- read-me.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/read-me.md b/read-me.md index e69de29..135ed43 100644 --- a/read-me.md +++ b/read-me.md @@ -0,0 +1,3 @@ +Nabeel M S + +nabeelms097@gmail.com \ No newline at end of file From 295a6d56e3bc188e4557fc22cccb916358d819c1 Mon Sep 17 00:00:00 2001 From: NabeelMS01 Date: Tue, 18 Mar 2025 21:50:44 +0530 Subject: [PATCH 03/12] two sum --- two-sum/twosum.js | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 two-sum/twosum.js diff --git a/two-sum/twosum.js b/two-sum/twosum.js new file mode 100644 index 0000000..d0ed07a --- /dev/null +++ b/two-sum/twosum.js @@ -0,0 +1,12 @@ +function twoSum(nums, target) { + var prevHash = new Map(); + for (var i = 0; i < nums.length; i++) { + var reminder = target - nums[i]; + if (prevHash.has(reminder)) { + return [prevHash.get(reminder), i]; + } + prevHash.set(nums[i], i); + } + return []; +} +console.log(twoSum([3, 5, 5, 6, 4, 8, 9], 9)); From 2c4297105dad7feddbc1e33bc9298472df175e45 Mon Sep 17 00:00:00 2001 From: NabeelMS01 Date: Wed, 19 Mar 2025 21:42:16 +0530 Subject: [PATCH 04/12] added day 2 best time to buy stock --- {two-sum => challenge 1}/twosum.js | 0 challenge 2/bestTimeToBuyAndSellStock.js | 26 ++++++++++++++++++++++++ 2 files changed, 26 insertions(+) rename {two-sum => challenge 1}/twosum.js (100%) create mode 100644 challenge 2/bestTimeToBuyAndSellStock.js diff --git a/two-sum/twosum.js b/challenge 1/twosum.js similarity index 100% rename from two-sum/twosum.js rename to challenge 1/twosum.js diff --git a/challenge 2/bestTimeToBuyAndSellStock.js b/challenge 2/bestTimeToBuyAndSellStock.js new file mode 100644 index 0000000..6d302c5 --- /dev/null +++ b/challenge 2/bestTimeToBuyAndSellStock.js @@ -0,0 +1,26 @@ +/** + * @param {number[]} prices + * @return {number} + */ +var maxProfit = function (prices) { + let left = 0; + let right = 1; + let maxProfit = 0; + + while (right < prices.length) { + if (prices[left] < prices[right]) { + let profit = prices[right] - prices[left]; + + if (maxProfit < profit) { + maxProfit = profit; + } + } else { + left = right; + } + right++; + } + + return maxProfit; +}; + +console.log(maxProfit([3, 2, 5, 6, 7, 3])); From 50da9a67fc025a4e67ab9a12b0eb800ec4c426f3 Mon Sep 17 00:00:00 2001 From: NabeelMS01 Date: Thu, 20 Mar 2025 21:03:55 +0530 Subject: [PATCH 05/12] contains duplicate completed --- challenge 3/containsDuplicate.js | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 challenge 3/containsDuplicate.js diff --git a/challenge 3/containsDuplicate.js b/challenge 3/containsDuplicate.js new file mode 100644 index 0000000..8cfd52d --- /dev/null +++ b/challenge 3/containsDuplicate.js @@ -0,0 +1,15 @@ +function containsDuplicate(nums) { + let map = new Set(); + + for (let num of nums) { + if (map.has(num)) { + return true; + } else { + map.add(num); + } + } + return false; +} + + +console.log(containsDuplicate([3,2,5,1])); From 1cb727b42a68093cfed244f6685f54fef2e75a07 Mon Sep 17 00:00:00 2001 From: NabeelMS01 Date: Sat, 22 Mar 2025 02:27:26 +0530 Subject: [PATCH 06/12] challenge day 5 completed --- challenge 4/productOfArrayExceptSelf.js | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 challenge 4/productOfArrayExceptSelf.js diff --git a/challenge 4/productOfArrayExceptSelf.js b/challenge 4/productOfArrayExceptSelf.js new file mode 100644 index 0000000..e616bad --- /dev/null +++ b/challenge 4/productOfArrayExceptSelf.js @@ -0,0 +1,22 @@ +var productExceptSelf = function (array) { + let prefix = new Array(array.length).fill(1); + let postFix = new Array(array.length).fill(1); + + let n = array.length; + let answers = new Array(n); + + for (let i = 1; i < array.length; i++) { + prefix[i] = prefix[i - 1] * array[i - 1]; + } + + for (let i = n - 2; i >= 0; i--) { + postFix[i] = postFix[i + 1] * array[i + 1]; + } + + for (let i = 0; i < n; i++) { + answers[i] = prefix[i] * postFix[i]; + } + return answers; +}; + +console.log(productExceptSelf([1, 2, 3, 4])); From 2f0c8717c5048a07446d232939e74665d70ef6d1 Mon Sep 17 00:00:00 2001 From: NabeelMS01 Date: Sat, 22 Mar 2025 15:07:22 +0530 Subject: [PATCH 07/12] sum of two integer done day 5 --- challenge 5/sumOfTwoInteger.js | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 challenge 5/sumOfTwoInteger.js diff --git a/challenge 5/sumOfTwoInteger.js b/challenge 5/sumOfTwoInteger.js new file mode 100644 index 0000000..89bb069 --- /dev/null +++ b/challenge 5/sumOfTwoInteger.js @@ -0,0 +1,10 @@ +var getSum = function (a, b) { + while (b != 0) { + let tmp = (a & b) << 1; + a = a ^ b; + b = tmp; + } + return a; +}; + +console.log(getSum(2, 3)); From e8a54ac2fa280805e29d532bec72a0bae3d10fb2 Mon Sep 17 00:00:00 2001 From: NabeelMS01 Date: Sat, 22 Mar 2025 15:12:00 +0530 Subject: [PATCH 08/12] sum of two integer done day 5 --- {challenge 5 => challenge 4}/sumOfTwoInteger.js | 0 {challenge 4 => challenge 5}/productOfArrayExceptSelf.js | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename {challenge 5 => challenge 4}/sumOfTwoInteger.js (100%) rename {challenge 4 => challenge 5}/productOfArrayExceptSelf.js (100%) diff --git a/challenge 5/sumOfTwoInteger.js b/challenge 4/sumOfTwoInteger.js similarity index 100% rename from challenge 5/sumOfTwoInteger.js rename to challenge 4/sumOfTwoInteger.js diff --git a/challenge 4/productOfArrayExceptSelf.js b/challenge 5/productOfArrayExceptSelf.js similarity index 100% rename from challenge 4/productOfArrayExceptSelf.js rename to challenge 5/productOfArrayExceptSelf.js From c2efdda4582975adefedc8f900e699a5fd8cb183 Mon Sep 17 00:00:00 2001 From: NabeelMS01 Date: Sat, 22 Mar 2025 15:12:29 +0530 Subject: [PATCH 09/12] sum of two integer done day 4 --- challenge 5/productOfArrayExceptSelf.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/challenge 5/productOfArrayExceptSelf.js b/challenge 5/productOfArrayExceptSelf.js index e616bad..0982eb5 100644 --- a/challenge 5/productOfArrayExceptSelf.js +++ b/challenge 5/productOfArrayExceptSelf.js @@ -14,7 +14,7 @@ var productExceptSelf = function (array) { } for (let i = 0; i < n; i++) { - answers[i] = prefix[i] * postFix[i]; + answers[i] = prefix[i] * postFix[i]; } return answers; }; From 1700acf7eca41e82974979fc93fafd7a0bb09cbd Mon Sep 17 00:00:00 2001 From: NabeelMS01 Date: Sun, 23 Mar 2025 21:52:24 +0530 Subject: [PATCH 10/12] day 7 Maximum Subarray completed --- challenge 6/maximumSubArray.js | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 challenge 6/maximumSubArray.js diff --git a/challenge 6/maximumSubArray.js b/challenge 6/maximumSubArray.js new file mode 100644 index 0000000..df37d44 --- /dev/null +++ b/challenge 6/maximumSubArray.js @@ -0,0 +1,16 @@ +var maxSubArray = function (nums) { + let maxSum = nums[0]; + let currentSum = 0; + + for (let num of nums) { + if (currentSum < 0) { + currentSum = 0; + } + + currentSum = currentSum + num; + maxSum = Math.max(currentSum, maxSum); + } + return maxSum; +}; + +console.log(maxSubArray([5, 2, 1, -1, -5, 6, 2, -5, -7])); From c00493c44523dc056e9aa5692a3cad5f1f7dd3e2 Mon Sep 17 00:00:00 2001 From: NabeelMS01 Date: Mon, 24 Mar 2025 21:37:56 +0530 Subject: [PATCH 11/12] day 8 product of max subarray --- challenge 7/maxProductSubarray.js | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 challenge 7/maxProductSubarray.js diff --git a/challenge 7/maxProductSubarray.js b/challenge 7/maxProductSubarray.js new file mode 100644 index 0000000..0a84f4e --- /dev/null +++ b/challenge 7/maxProductSubarray.js @@ -0,0 +1,17 @@ +var maxProduct = function (nums) { + let currentMinProduct = 1; + let currentMaxProduct = 1; + let result = nums[0]; + + for (let num of nums) { + let temp = currentMaxProduct * num; + + currentMaxProduct = Math.max(temp, currentMinProduct * num, num); + currentMinProduct = Math.min(temp, currentMinProduct * num, num); + + result = Math.max(result,currentMaxProduct) + return result + } +}; + +console.log(maxProduct([3, 2, -3, 5, -4, 2, 4, 6])); From 3d8afb917cf3d15747b998dc743b413f2a7b8c85 Mon Sep 17 00:00:00 2001 From: NabeelMS01 Date: Sat, 5 Apr 2025 15:27:16 +0530 Subject: [PATCH 12/12] binary searhc oand search in rotated sorted array --- binarySearch.js | 24 +++++++++++++++++++ challenge 7/maxProductSubarray.js | 5 ++-- challenge 8/serchInRotatedSortedArray.js | 30 ++++++++++++++++++++++++ 3 files changed, 57 insertions(+), 2 deletions(-) create mode 100644 binarySearch.js create mode 100644 challenge 8/serchInRotatedSortedArray.js diff --git a/binarySearch.js b/binarySearch.js new file mode 100644 index 0000000..88c31aa --- /dev/null +++ b/binarySearch.js @@ -0,0 +1,24 @@ +var search = function (nums, target) { + let left = 0; + let right = nums.length - 1; + while (left <= right) { + let middle = Math.floor(left + (right - left) / 2); + + if (nums[middle] === target) { + return middle; + } else if (nums[middle] < target) { + left = middle + 1; + } else { + right = middle - 1; + } + + + } +return -1; +}; + + + + + +console.log(search([-1, 0, 3, 5, 9, 12,13,14,15,16,17], 3)); diff --git a/challenge 7/maxProductSubarray.js b/challenge 7/maxProductSubarray.js index 0a84f4e..4e9a971 100644 --- a/challenge 7/maxProductSubarray.js +++ b/challenge 7/maxProductSubarray.js @@ -10,8 +10,9 @@ var maxProduct = function (nums) { currentMinProduct = Math.min(temp, currentMinProduct * num, num); result = Math.max(result,currentMaxProduct) - return result + } + return result }; -console.log(maxProduct([3, 2, -3, 5, -4, 2, 4, 6])); +console.log(maxProduct([2,3,-2,4])); diff --git a/challenge 8/serchInRotatedSortedArray.js b/challenge 8/serchInRotatedSortedArray.js new file mode 100644 index 0000000..827fc5e --- /dev/null +++ b/challenge 8/serchInRotatedSortedArray.js @@ -0,0 +1,30 @@ +let search = function (nums, target) { + let l = 0; + let r = nums.length - 1; + + while (l <= r) { + let mid = parseInt((r + l) / 2); + + if (nums[mid] === target) { + return mid; + } + + if (nums[l] <= nums[mid]) { + if (target > nums[mid] || target < nums[l]) { + l = mid + 1; + } else { + r = mid - 1; + } + } else { + if (target < nums[mid] || target > nums[r]) { + r = mid - 1; + } else { + l = mid + 1; + } + } + } + + return -1; + }; + + console.log(search([4, 5, 6, 7, 8, 1, 2, 3], 6)); // Should print 2