白菜刷LeetCode记-46. Permutations
Posted sysu_kww
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了白菜刷LeetCode记-46. Permutations相关的知识,希望对你有一定的参考价值。
今天这一题也是中等难度,题目如下:
这一题是要实现数组的全排列。这一题是要使用遍历以及递归的思想去实现,代码如下:
1 /** 2 * @param {number[]} nums 3 * @return {number[][]} 4 */ 5 var permute = function(nums) { 6 var res = new Array(); 7 8 helper(nums, 0, nums.length - 1 , res); 9 10 return res; 11 }; 12 13 var helper = function(nums, k, n, res){ 14 15 if(k==n){ 16 let tmparr = new Array(); 17 nums.forEach(function(v,i){ 18 tmparr.push(v); 19 }); 20 res.push(tmparr); 21 }else{ 22 for(let i = k ; i <= n ; i++){ 23 let tmp = nums[k]; 24 nums[k] = nums[i]; 25 nums[i] = tmp; 26 27 helper(nums, k+1, n, res); 28 29 tmp = nums[k]; 30 nums[k] = nums[i]; 31 nums[i] = tmp; 32 } 33 } 34 }
(今天因为将第25、31行的tmp写成了nums[k],导致结果一致不正确,以后需要注意一下这些小细节。)
END
以上是关于白菜刷LeetCode记-46. Permutations的主要内容,如果未能解决你的问题,请参考以下文章
白菜刷LeetCode记-811.Subdomain Visit Count
白菜刷LeetCode记-384. Shuffle an Array
白菜刷LeetCode记-350. Intersection of Two Arrays II
白菜刷LeetCode记-328. Odd Even Linked List