码迷,mamicode.com
首页 > 其他好文 > 详细

leetcode 46. Permutations

时间:2019-12-15 20:14:15      阅读:83      评论:0      收藏:0      [点我收藏+]

标签:添加   索引   javascrip   ==   fun   object   全排列   class   leetcode   

全排列,使用回溯法


 var permute = function (nums) {
      if (!Object(nums).length) {
        return [];
      }
      var result = [], condidate = [], n = nums.length, hash = {}
      function backtrack(start) {
        if (start === n) {//移动到最右边
          result.push(condidate.concat());
        } else {
          for (var i = 0; i < n; i++) {//注意从0开始,不断尝试
            if (hash[i]) {
              continue;
            }
            var el = nums[i]
            hash[i] = 1 //防止一个 condidate 数组添加了多个mums[i]
            condidate.push(el) //试探
            backtrack(start + 1); //递归自身
            hash[i] = 0
            condidate.pop(); //不管成功与否,退回上一步
          }
        }
      }
      backtrack(0); //此参数是用来决定索引是否移动到最右边
      return result;
    };

leetcode 46. Permutations

标签:添加   索引   javascrip   ==   fun   object   全排列   class   leetcode   

原文地址:https://www.cnblogs.com/rubylouvre/p/12045510.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!