順列・組み合わせ のサンプルコード JS [permutation] [combination]
約 3 分
目次
概要
順列(permutation) と 組み合わせ(combination) のサンプルコードをJavaScriptで実装してみました。
順列 - permutation
サンプルコード
const permutation = (nums, k) => {
let ans = [];
if (nums.length < k) {
return [];
}
if (k === 1) {
for (let i = 0; i < nums.length; i++) {
ans[i] = [nums[i]];
}
} else {
for (let i = 0; i < nums.length; i++) {
let parts = nums.slice(0);
parts.splice(i, 1)[0];
let row = permutation(parts, k - 1);
for (let j = 0; j < row.length; j++) {
ans.push([nums[i]].concat(row[j]));
}
}
}
return ans;
};
Usage
let arr = permutation(['a', 'b', 'c'], 2);
console.log(JSON.stringify(arr));
// [["a","b"],["a","c"],["b","a"],["b","c"],["c","a"],["c","b"]]
組み合わせ - combination
サンプルコード
const combination = (nums, k) => {
let ans = [];
if (nums.length < k) {
return [];
}
if (k === 1) {
for (let i = 0; i < nums.length; i++) {
ans[i] = [nums[i]];
}
} else {
for (let i = 0; i < nums.length - k + 1; i++) {
let row = combination(nums.slice(i + 1), k - 1);
for (let j = 0; j < row.length; j++) {
ans.push([nums[i]].concat(row[j]));
}
}
}
return ans;
};
Usage
let arr = combination(['a', 'b', 'c'], 2);
console.log(JSON.stringify(arr));
// [["a","b"],["a","c"],["b","c"]]おすすめの記事
最新の記事
よく読まれている記事
タグから探す
- javascript129
- typescript66
- node.js54
- linux54
- 画像処理48
- amazon-aws47
- アルゴリズム37
- canvas35
- html529
- 画像処理100本ノック27
- php24
- centos24
- python22
- 競技プログラミング21
- mac21
- mysql20
- opencv17
- 雑談16
- 機械学習16
- docker16
- wordpress15
- atcoder14
- apache12
- データベース12
- amazon-s312
- red-hat12
- prisma12
- ubuntu11
- github10
- git10
- react10
- mariadb10
- vue.js9
- aws-cdk9
- css38
- 可視化8
- 小ネタ8
- next.js8
- nestjs8
- amazon-lightsail7
- ブログ6
- cms6
- oracle6
- perl6
- gitlab6
- iam5
- amazon-ec25
- 資格試験5
- aws-amplify5
- curl4