资讯专栏INFORMATION COLUMN

javascript 组合求和

chavesgu / 3450人阅读

摘要:前端小白学习之旅思路解析组合求和数组元素目标成立成立思路目标减去任意组合则成立代码数列目标数组生成的数组此时虽然可以打印出值但是由于是地址引用所以它会返回之前的长度但是会返回修改后的结果遍历这个数组

前端小白---学习之旅

思路解析(组合求和)

数组元素 [1,2,3,4,6] 目标: 7
成立:[3,4]
成立:[1,2,4]
思路:目标减去 - 任意组合 = 0 // 则成立

代码

  function combinatorialSum(
     targetArr, // 数列
     targetsum, // 目标数组
     generatearr = [], // 生成的数组
     combination = []) 
  {
      if (targetsum < 0) return;
      
      if (targetsum === 0) {
         // 此时 combination 虽然可以打印出值 但是由于是地址引用 所以它会返回之前的长度 但是会返回修改后的结果
         // combination.slice() || [... combination]
          generatearr.push(combination.slice())
          return generatearr;
      }
            // 遍历这个数组 targetArr
      for (let i = 0; i < targetArr.length; i++) {
          const item = targetArr[i];
          combination.push(targetArr[i]);
          combinatorialSum(targetArr, targetsum - item, generatearr, combination);
          combination.pop();
      }
      return generatearr;

}

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/105957.html

相关文章

  • 函数式编程之组合

    摘要:在函数式编程的组合中,我们是从右到左执行的,上述的例子中我们借助函数实现组合,当然,我们也可以用自己的方式实现。小结函数式编程随着多核的发展,开始再次出现在我们的视野中,有时候也会担心过于吹捧函数式,反而落入俗套。 程序的本质是什么?数据结构+算法!!!我想这也是很多程序员给出的答案,我自己也认可这一观点,当我们了解了某一门编程语之后,接下来我们面对的往往是数据结构和算法的学习。而现在...

    Jinkey 评论0 收藏0
  • Leetcode 696.计数二进制子串(javascript)

    摘要:题目给定一个字符串,计算具有相同数量和的非空连续子字符串的数量,并且这些子字符串中的所有和所有都是组合在一起的。示例输入输出解释有个子串具有相同数量的连续和,,,,和。请注意,一些重复出现的子串要计算它们出现的次数。 题目 给定一个字符串 s,计算具有相同数量0和1的非空(连续)子字符串的数量,并且这些子字符串中的所有0和所有1都是组合在一起的。 重复出现的子串要计算它们出现的次数。 ...

    Noodles 评论0 收藏0
  • 我是怎样用函数式JavaScript计算数组平均值的

    摘要:简单模式记录多个累加值在之前的版本中,我们创建了很多中间变量,。接下来,我们给自己设一个挑战,使用链式操作,将所有的函数调用组合起来,不再使用中间变量。你甚至可以继续简化上述代码,移除不必要的中间变量,让最终的计算代码只有一行。 译者按: 有时候一个算法的直观、简洁、高效是需要作出取舍的。 原文: FUNCTIONAL JAVASCRIPT: FIVE WAYS TO CALCULA...

    renweihub 评论0 收藏0
  • 使用 javascript 的小技巧

    摘要:与条件判断一般我们判断或用如果我们有更多水果与去重提供了新的数据结构。所以所有的关于数据的操作,都可以用函数式的方式处理。这样做的可读性远远高于嵌套一大堆的函数调用我们选择一些函数,让它们结合,生成一个崭新的函数。 1、Array.includes 与条件判断 一般我们判断或用 || // condition function test(fruit) { if (fruit...

    econi 评论0 收藏0
  • JavaScript 系列--JavaScript一些奇淫技巧的实现方法(三)数字取整,数组求和

    摘要:一前言简短的函数,获取时间戳数字格式化对象类数组转换成数组今天我们来介绍一下数字取整,数组求和。一个介于和之间的整数数学系统的基础,表示上述字符串的基数。注意但是当数字范围超出即时,异常就出现了。 一、前言 简短的sleep函数,获取时间戳:https://www.mwcxs.top/page/74... 数字格式化 1234567890 --> 1,234,567,890;argru...

    Carbs 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<