algorithm
algorithm copied to clipboard
算法复习总结,用JavaScript实现
 ``` /** * @param {number[]} candidates * @param {number} target * @return {number[][]} */ var combinationSum = function(candidates, target) { var res = []; function dfs(candidates,target,arr,j){ if(target
 ``` /** * @param {number[]} nums * @return {number[][]} */ var subsetsWithDup = function(nums) { nums = nums.sort((a,b)=>a-b); var res = []; function dfs(nums,arr,i){ res.push([...arr]) for(var j=i;j
 ``` /** * @param {number[]} nums * @return {number[][]} */ var subsets = function(nums) { var res = []; function dfs(nums,arr,j){ res.push([...arr]); for(var i=j;i
 ``` /** * @param {number} n * @return {number} */ var climbStairs = function(n) { var temp = { 1:1, 2:2, }; for(var i=3;i
 ``` /** * @param {character[][]} grid * @return {number} */ var numIslands = function(grid) { var res =0; var visited =[]; var m = grid.length; if(grid.length===0) return res; var...
 ``` // 表示某一个点的上右下左的偏移量 var d = [[-1,0],[0,1],[1,0],[0,-1]]; // 标记是否已经被占用 var visited = []; // 判断是否越界 function inArea(board,x,y){ return x>=0 && y>=0 && x
 ``` /** * @param {number} n * @param {number} k * @return {number[][]} */ var combine = function(n, k) { res = []; var arr = []; generateCombine(n,k,1,arr); return...
 ``` /** * @param {number[]} nums * @return {number[][]} */ var permuteUnique = function(nums) { if(nums.length===0) return []; var res = []; var used = {}; function combile(nums,index,s){ if(index...
 ``` /** * @param {number[]} nums * @return {number[][]} */ var permute = function(nums) { if(nums.length===0) return []; var used = {}; var res = []; function combine(nums,index,s){ if(index...
 ``` /** * @param {string} digits * @return {string[]} */ var letterCombinations = function(digits) { var digitsArray = digits.split(''); if(digitsArray.length===0) return []; var map ={ "2":"abc", "3":"def", "4":"ghi", "5":"jkl",...