写一个关于全排列,全组合的函数
全排列
- /**
- * @param {number[]} nums
- * @return {number[][]}
- */
- var permute = function (nums) {
- let result = [];
- let used = Array.from({ length: nums.length }).fill(false);
- function search(collection, used) {
- if (collection.length === nums.length) {
- result.push(collection);
- return;
- }
- for (let i = 0; i < nums.length; i++) {
- if (used[i] === false) {
- used[i] = true;
- search(collection.concat(nums[i]), used.slice(0));
- used[i] = false; // 重置状态
- }
- }
- collection = null;
- used = null;
- }
- search([], used);
- return result;
- };
全组合: 给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 k 个数的组合。
- var combine = function (n, k) {
- let result = [];
- function find(collection, from) {
- if (collection.length === k) {
- result.push(collection);
- return;
- }
- for (let i = from; i <= n; i++) {
- find(collection.concat(i), i + 1);
- }
- }
- find([], 1);
- return result;
- };
解压密码: detechn或detechn.com
免责声明
本站所有资源出自互联网收集整理,本站不参与制作,如果侵犯了您的合法权益,请联系本站我们会及时删除。
本站发布资源来源于互联网,可能存在水印或者引流等信息,请用户自行鉴别,做一个有主见和判断力的用户。
本站资源仅供研究、学习交流之用,若使用商业用途,请购买正版授权,否则产生的一切后果将由下载用户自行承担。