老师 这边的 forEach 换成for 循环 为什么执行结果就不一样了呢

来源:15-2 LeetCode:46. 全排列

qq_阿玛尼_1

2022-06-06

for (let i =0; i<nums.length;i++){

if(path.includes(nums[i])) {return}

backtrack(path.concat(nums[i]))

}

写回答

3回答

viTaemin_nanali

2022-12-10

var permute = function (nums) {

  const res = [];

  const backTrack = (path) => {

    if (path.length === nums.length) {

      res.push(path);

      return;

    }

    for (let i = 0; i < nums.length; i++) {

      const num = nums[i];

      if (!path.includes(num)) {

        backTrack(path.concat(num));

      }

    }

  };

  backTrack([]);

  return res;

};


0
0

qq_阿玛尼_1

提问者

2022-06-06

for 循环不应该使用 return。 return 跳出for循环 且不执行for循环之外的语句 此处应使用 continue

0
0

lewis

2022-06-06

可以console log 看看

0
0

JavaScript版数据结构与算法 轻松解决前端算法面试

夯实算法基础,填补技术短板,助力面试考题最后一公里

2479 学习 · 683 问题

查看课程