javascript - 如何从给定列表生成 n 个大小的列表的列表
问题描述
假设我们有一个列表,
var l = [50, 55, 56, 57, 58, 60]
和一个随机数n
。
我需要创建一个返回所有可能的长度列表的函数n
。
如果n = 3
,
[50,55,57],[50,55,58],[50,55,60],[50,57,58],[50,57,60],[50,58,60],[55,57,58],[55,57,60],[55,58,60],[57,58,60]
编辑
我无法添加完整的输出数组,因为我不知道如何生成它。
解决方案
假设n
小于输入数组的大小,您可以这样做:
var soln = []
function generateListsFromSize(array, n, offset=0, current=[]) {
if (current.length == n){
soln.push(current.map(elem => elem))
return
}
for (var i=offset; i < array.length; i++) {
current.push(array[i]);
generateListsFromSize(array, n, i + 1, current);
current.pop();
}
}
generateListsFromSize([50, 55, 57, 58, 60], 3)
console.log(soln)
这个想法是维护一个数组,在这种情况下,并通过回溯current
尝试所有不同的场景。
推荐阅读
- c++ - C++ 如何使用 OpenCV 制作透明水印?
- c - 从内存加载和执行可执行代码
- python - Python manage.py runserver 命令不起作用且错误消息不具体
- python - 如何使用对字符串列正确的tensorflow数据集映射函数
- javascript - 为什么数组结构没有比 JavaScript 中的结构数组快得多?
- amazon-web-services - 即使拔下 Raspberry pi,SSM 代理 Ping 状态“已连接”
- tensorflow - 当我将联合客户端设置为超过 12 个时,Tensorflow 联合学习模拟中出现内存不足 (OOM) 错误
- c - 中止陷阱:Mac OS 上使用 strncpy 和 strcpy 出现 6 错误
- postgresql - 在 postgres SQL 中查询 jsonb 字段
- android - 如何在 Binding Adapter 中将此 java 代码写入 kotlin