How to get all subarrays from an array by using JavaScript All In One
JavaScript 动态生成其所有的
子数组
算法
difficulty: Medium
/ 难度: 中等
solutions
demos
// 双指针 ???
// function numberOfSubarrays(nums: number[], k: number): number {
// let count = 0;
// // sub-arrays
// const subarrays = getAllSubarrays(nums);
// for(let subarray of subarrays) {
// let odds = subarray.filter(i => i % 2 !== 0);
// if(odds.length === k) {
// count++;
// }
// }
// return count;
// };
// 滑动 ❌
// function getAllSubarrays(arr: number[]): number[][] {
// let result: number[][] = [];
// let len = arr.length;
// while(len) {
// let temp = [];
// let step = arr.length - len + 1;
// console.log(`❓ step =`, step)
// for(let i = 0; i <= arr.length; i++) {
// if(arr[step]) {
// temp.push(arr.slice(i, step));
// result.push(temp);
// }
// step++;
// }
// console.log(`❌ result =`, result);
// len--;
// }
// console.log(`result =`, result);
// return result;
// };
// 递归: 排列组合 permutation & composition
// function getAllPermutation(arr: number[]): number[][] {
// let result: number[][] = [];
// for(let i = 0; i < arr.length; i++) {
// let temp = arr[i];
// let others = getAllPermutation([...arr.slice(0, i), ...arr.slice(i)]);
// for(let other of others) {
// result.push([temp, ...other]);
// }
// }
// return result;
// };