(Js) Leetcode 46. 전체 배열

이야기:

반복되는 숫자가없는 시퀀스가 ​​주어지면 가능한 모든 순열을 반환합니다.

예:

입력 : [1,2,3]
출력 :
[
  [1,2,3],
  [1,3,2],
  [2,1,3],
  [2,3,1],
  [3,1,2 ],
  [3,2,1]
]

아이디어 :

역 추적 알고리즘

참조 아이디어

암호:

/**
 * @param {number[]} nums
 * @return {number[][]}
 */
var permute = function(nums) {
    let res = [], track = [];
    backtrack(res, nums, track);
    return res;
};

var backtrack = function(res, nums, track) {
    // 触发结束条件
    if (track.length == nums.length) {
        return res.push([...track]);;
    }
    for (let i = 0; i < nums.length; i++) {
        // 排除不合法的选择
        if (track.includes(nums[i])) continue;
        // 做选择
        track.push(nums[i]);

        // 进入下一层决策树
        backtrack(res, nums, track);
        // 取消选择
        track.pop();
    }
}

작업 결과 :

추천

출처blog.csdn.net/M_Eve/article/details/113763794