From ef76ee6f9c953f6742f7b55e2775686adedb6bfb Mon Sep 17 00:00:00 2001 From: tahir Date: Sat, 21 Oct 2023 20:09:03 +0530 Subject: [PATCH] 80th problem --- 71-80/77. Combinations.js | 14 ++++++++++ 71-80/78. Subsets.js | 13 ++++++++++ 71-80/79. Word Search.js | 26 +++++++++++++++++++ ... Remove Duplicates from Sorted Array II.js | 18 +++++++++++++ 4 files changed, 71 insertions(+) create mode 100644 71-80/77. Combinations.js create mode 100644 71-80/78. Subsets.js create mode 100644 71-80/79. Word Search.js create mode 100644 71-80/80. Remove Duplicates from Sorted Array II.js diff --git a/71-80/77. Combinations.js b/71-80/77. Combinations.js new file mode 100644 index 0000000..47fa21f --- /dev/null +++ b/71-80/77. Combinations.js @@ -0,0 +1,14 @@ +var combine = function(n, k) { + let result = [] + let traverse = (arr, depth) =>{ + if (arr.length === k) { + result.push(arr) + return + } + if (depth > n) {return} + traverse(arr, depth + 1) + traverse(arr.concat(depth), depth + 1) + } + traverse([], 1) + return result; +}; \ No newline at end of file diff --git a/71-80/78. Subsets.js b/71-80/78. Subsets.js new file mode 100644 index 0000000..882eeee --- /dev/null +++ b/71-80/78. Subsets.js @@ -0,0 +1,13 @@ +var subsets = function(nums) { + let ans = [[]] + let k = [] + for(let i = 0 ; i < nums.length ; i++){ + let n = ans.length + for(let j = 0 ; j < n ;j++){ + k = Array.from(ans[j]) + k.push(nums[i]) + ans.push(k) + } + } + return ans +}; \ No newline at end of file diff --git a/71-80/79. Word Search.js b/71-80/79. Word Search.js new file mode 100644 index 0000000..ceec009 --- /dev/null +++ b/71-80/79. Word Search.js @@ -0,0 +1,26 @@ +var exist = function(board, word) { + let found = false; + const backtrack = (board, rIdx, cIdx, word, letterIdx) => { + if(rIdx >= 0 && rIdx < board.length && cIdx >=0 && cIdx < board[0].length && board[rIdx][cIdx] === word[letterIdx]) { + if(letterIdx === word.length-1) found ||= true; + const curLetter = word[letterIdx]; + board[rIdx][cIdx] = ''; + backtrack(board, rIdx+1, cIdx, word, letterIdx+1); + backtrack(board, rIdx-1, cIdx, word, letterIdx+1); + backtrack(board, rIdx, cIdx+1, word, letterIdx+1); + backtrack(board, rIdx, cIdx-1, word, letterIdx+1); + board[rIdx][cIdx] = curLetter; + } + }; + + let letterIdx = 0; + board.forEach((row, rIdx) => { + row.forEach((cell, cIdx) => { + if(cell === word[letterIdx]) { + backtrack(board, rIdx, cIdx, word, letterIdx); + if(found) return found; + } + }) + }); + return found; +} \ No newline at end of file diff --git a/71-80/80. Remove Duplicates from Sorted Array II.js b/71-80/80. Remove Duplicates from Sorted Array II.js new file mode 100644 index 0000000..3923076 --- /dev/null +++ b/71-80/80. Remove Duplicates from Sorted Array II.js @@ -0,0 +1,18 @@ +var removeDuplicates = function(nums) { + let j = 0 + let [m,c,k] = [0,0,0] + for(let i = 0 ; i