1. 程式人生 > >白菜刷LeetCode記-46. Permutations

白菜刷LeetCode記-46. Permutations

length arr 數組 分享 ons leet 需要 使用 全排列

今天這一題也是中等難度,題目如下:

技術分享圖片

這一題是要實現數組的全排列。這一題是要使用遍歷以及遞歸的思想去實現,代碼如下:

 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