首页 > 其他分享 >根据结果和集合长度获取原数组中所有符合的集合

根据结果和集合长度获取原数组中所有符合的集合

时间:2023-10-07 16:01:43浏览次数:25  
标签:count const sum currentList let result 数组 集合 长度

// 计算数字之和

const nums = [-1, 0, 1, 2, 3]

function countNums(num, nums, length) {
function getSum(data) {
let sum = 0;
for (let value of data) {
sum += value;
}
return sum
}
function getNumbers(source, count, isPermutation = true) {
//如果只取一位,返回数组中的所有项,例如 [ [1], [2], [3] ]
let currentList = source.map((item) => [item]);
if (count === 1) {
return currentList;
}
let result = [];
//取出第一项后,再取出后面count - 1 项的排列组合,并把第一项的所有可能(currentList)和 后面count-1项所有可能交叉组合
for (let i = 0; i < currentList.length; i++) {
let current = currentList[i];
//如果是排列的方式,在取count-1时,源数组中排除当前项
let children = [];
if (isPermutation) {
children = getNumbers(source.filter(item => item !== current[0]), count - 1, isPermutation);
} else {
//如果是组合的方法,在取count-1时,源数组只使用当前项之后的
children = getNumbers(source.slice(i + 1), count - 1, isPermutation);
}
for (let child of children) {
result.push([...current, ...child]);
}
}
return result;
}
const result = getNumbers(nums, length, false)
const nRes = []
for (const numbers of result) {
const sum = getSum(numbers)
if (sum === num) {
nRes.push(numbers)
}
}
return nRes
}

const result = countNums(2, nums, 3)
console.log(result)

标签:count,const,sum,currentList,let,result,数组,集合,长度
From: https://www.cnblogs.com/stof/p/17746526.html

相关文章

  • java 数组list 找出最早最晚
    //找到最早的小时和最晚的小时,并具体到分钟Optional<LocalTime>earliestTime=adminEventInfoDTOList.stream().map(dto->dto.getCreateTime().toLocalTime()).min(LocalTime::compareTo);Optional<LocalTime......
  • c语言 二维数组指针
    @TOC前言前面我们讲了一维数组指针,今天我们讲一下二维数组指针。一、二维数组指针的定义:概述:二维数组指针的定义就是把一维数组换成二维数组。二维数组的各个元素也都是地址。步骤:inta[2][3]={{1,2,3},{4,5,6}};//定义一个二维数组int(*p)[2][3]=&a;//a是整......
  • 输入若干个数值存入数组中,采用冒泡算法进行升序或降序排序
    [12:38:09root@centos8~]#bashsort.shbeforesort:1475626459133973060324422175901602255661082520888121022092421146668557255975852542867817400aftersort:3060328678264592442220888175901740016022147561339711466108259758924272......
  • 常数时间对数组进行-删除-查找-随机提取元素
    参考:380.O(1)时间插入、删除和获取随机元素众所周知,数组这类数据结构可以实现O(1)的获取,所以结合rand()函数就能实现随机获取,但是数组的存储方式又是连续的,这就意味着,插入和删除时需要有大量的元素需要移动,所以不能实现O(1)的插入(末尾除外)和删除。能够实现O(1)的插入和删除的......
  • numpy 数组 的 视图和副本
    numpy数组的视图https://zhuanlan.zhihu.com/p/199615109?utm_id=0https://finthon.com/numpy-arrayview-copy/https://blog.csdn.net/weixin_44226181/article/details/128401161 ==================================在编程的过程中很可能会使用到原数组,这就涉及到......
  • Numpy 数组的内部结构组成
    Numpy数组的内部结构组成 下图是Numpy数组的内部结构组成。其中可以分为数组数据结构信息区以及数据存储区。简单来说,数组数据结构信息区中有Numpy数组的形状(shape)以及数据类型(data-type)等信息,而数据存储区则是用于存储数组的数据,Numpy数组中的数据可以指向其它数组中......
  • Numpy 创建随机数数组 随机数组
     创建随机数数组NumPy提供了强大的生成随机数的功能。真正的随机数很难获得,实际中使用的都是伪随机数。大部分情况下,伪随机数就能满足需求。当然,某些特殊情况除外,如进行高精度的模拟实验。对于NumPy,与随机数相关的函数都在random模块中,其中包括了可以生成服从多种概率分布随机数......
  • numpy 数组 的 轴
    numpy数组的轴 1认识“轴”的概念如同笛卡尔坐标系一样,NumPy张量也有轴。现在我们先以熟悉二维向量为例来说明这个概念,二维向量的轴是沿行和列的方向。轴的编号是从0开始的,因此“第一轴”实际上是“axis0”。“第二轴”是“axis1”,依此类推。在可视化观感上,“axis0”就......
  • 串口打包长度与打包时间
    串口打包长度与打包时间 USR-WIFI232系列模块串口数据打包说明,串口是数据本身是无序的,一个字节一个字节的发送,网络数据一个包一个包发送,所有有了串口数据打包的问题。 WIFI232系列模块有三个打包选项,任一条件满足都会打包:1、打包时间间隔    即收到模块的最后一个字节......
  • TypeScript入门到精通——TypeScript类型系统基础——数组类型
    数组类型 数组是十分常用的数据结构,它表示一组有序元素的集合。在TypeScript中,数组值的数据类型为数组类型。一、数组类型定义 TypeScript提供了以下两种方式来定义数组类型:简单数组类型表示法泛型数组类型表示法1.1、简单数组类型表示法在TypeScript中,你可以使......