算法

2023-05-16

  1. 从一个数组中找出 N 个数,其和为 M 的所有可能
// 参数依次为目标数组、选取元素数目、目标和
const search = (arr, count, sum) => {
  // 计算某选择情况下有几个 `1`,也就是选择元素的个数
  const n = num => {
    let count = 0;
    while(num) {
      num &= (num - 1);
      count++;
    }
    return count;
  }
  
  let len = arr.length, bit = 1 << len, res = [];
  // 遍历所有的选择情况
  for(let i = 1; i < bit; i++){
    // 满足选择的元素个数 === count
    if(n(i) === count){
      let s = 0, temp = [];
      // 每一种满足个数为 N 的选择情况下,继续判断是否满足 和为 M
      for(let j = 0; j < len; j++){
        // 建立映射,找出选择位上的元素
        if((i & 1 << j) !== 0) {
          s += arr[j];
          temp.push(arr[j]);
        }
      }
      // 如果这种选择情况满足和为 M
      if(s === sum) {
        res.push(temp);
      }
    }
  }
  return res;
}

参考链接:
https://mp.weixin.qq.com/s?__biz=MzA5NzkwNDk3MQ==&mid=2650589268&idx=1&sn=7c526a76eb99643f5dc8507657ce2bd1&chksm=8891d870bfe651663db4b63b94da0fba913bd42423ed5042d599203bf320de798e9b849136d3&scene=38#wechat_redirect

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

算法 的相关文章

  • ESP32-C3入门教程 ESP-IDF 5.x篇⑤——ESP-IDF V5.0.1编译报错: Failed to resolve component ‘mdns‘.

    文章目录 一 前言 二 编译报错 三 分析问题 四 进一步分析问题 五 解决问题 六 编译验证 一 前言 本文基于VS Code IDE进行编程 编译 下载 运行等操作 基础入门章节请查阅 ESP32 C3入门教程 基础篇 基于VS Cod
  • Android Camera 摄像头 预览时 水平镜像

    一 效果图 废话不多说 xff0c 直接看效果 二 关键代码 span class token class name Matrix span matrix span class token operator 61 span surfaceV
  • NSIS ERROR解决方法

    可能有病毒 如果没病毒可用 NCRC命令跳过检测 xff1a 开始菜单 运行 输入cmd xff0c 点确定 xff0c 会出现黑色类似DOS的窗口在此窗口中输入 xff1a start 空格 安装文件目录例如F 新建文件夹 steup e
  • 百度网盘限速下载,PanDownload简直逆天

    目前来说PanDownload依然是突破限速的首选软件 xff0c 虽然有时候也会出现波动 xff0c 但至少比管家要强太多太多 pandownload官网 PanDownload是一款免费软件 xff0c 请至官网下载 http pand
  • win10+TeamVIew+花生壳 0元实现 远程开机教程附带截图超详细 已实践成功

    win10 43 TeamVIew 43 花生壳 实现远程开机 最近dnf出了累计在线时长送装备的活动 xff0c 公司电脑挂游戏又不太好 xff0c 云主机的实现成本太高 xff0c 于是有了远程自己家里的电脑挂游戏的想法 xff0c 但
  • 我安装archlinux的过程总结

    根据网上的文章 Archlinux 2015 07 01 和 Windows7 双系统 安装教程 改编 2017 11 18 Archlinux 2015 07 01 和 Windows7 双系统 安装教程 提前在windows7下给Arc
  • 使用Gradle发布Android开源项目到JCenter

    这里介绍一下 xff0c 如何使用Gradle发布到jcenter 注册 先到https bintray com注册一个账号 配置账号 我们需要配置一下BINTRAY USER及BINTRAY KEY两个属性 BINTRAY USER即你注
  • android中activity和fragment之间的跳转问题

    一 描述 xff1a 现MainActivity中有Fragment1 Fragemnt2 Fragment3 Fragment4 xff0c 还有一个Activity2和一个按钮 二 需求 xff1a 1 从Fragment2跳转至Act
  • 苹果新发布的Apple M1 SoC处理器,对比25年前第一代ARM1,性能强了多少?

    来源 xff1a Andrei xff0c 整理 xff1a 晓宇 微信公众号 xff1a 芯片之家 xff08 ID xff1a chiphome dy xff09 2020年11月10日 xff0c 苹果发布了他们全新的MacBook系
  • 在Windows平台使用python3调用dronekit并仿真

    实验平台 Windows 10Python3 7dronekit python 2 9 2 本文使用上述环境进行实验 dronekit python官方文档1的Introduction Release Notes部分更新到dronekit
  • 计算机概论复习:知识大全

    为期末考试复习的笔记 xff0c 参考了各种资料 1 计算机的定义 1 1计算机系统的组成 1 由硬件和软件组成 xff1b 2 软件 xff1a 应用软件 办公自动化软件 财务管理软件 xff08 记法 xff1a 有专门应用语境的软件
  • SpringMVC常用注解解释

    SpringMVC常用注解详解 1 ResquestParam 作用 xff1a 把请求中指定名称的参数给控制器中的形参赋值 属性 xff1a value xff1a 请求参数中的名称 required xff1a 请求参数中是否必须提供此
  • 约瑟夫环(链表法,公式法)

    约瑟夫环作为一个数学问题 xff0c 它的代码实现方式有很多 xff0c 比如循环链表 xff0c 公式解决或者动态规划 xff0c 之前参考资料也有用递归解决的 Anyway xff0c 这些都是解决约瑟夫环问题很有效的方法 这里总结两种
  • C/C++对Unicode编码的处理

    http blog chinaunix net uid 23414687 id 2425175 html MultiByteToWideChar CP ACP 0 p 1 tUni 1 调用windows的API函数将中文内码转换成 UNI
  • Android8.0 user版本adb 的log输出到串口中

    我们在调试adb时不能使用logcat xff0c 这个时候我们需要把adb的log输出到串口 xff0c init就能实现 xff0c 我们仿造init的代码 xff0c 在adbd的main函数中调用了如下函数InitKernelLog
  • 爬虫——动作链、xpath、打码平台使用

    系列文章目录 第一章 爬虫 爬虫初识 requests模块 第二章 代理搭建 爬取视频网站 爬取新闻 BeautifulSoup4介绍 bs4 遍历文档树 bs4搜索文档树 bs4使用选择器 第三章 selenium基本使用 无界面浏览器
  • 2022-11-02 | Tomcat9.0安装及配置教程(win10) by YUNER

    0 参考博客链接 xff1a Tomcat 9安装配置教程 https blog csdn net u011118751 article details 105394464 Tomcat9 0安装与配置 https blog csdn ne
  • 敏捷Scrum指南三:Scrum角色之SM(ScrumMaster)

    角色概述 SM主要负责帮助每个人理解并乐于接受Scrum的价值观 原则和实践 对PO和Dev Team来说 xff0c SM履行的是教练的职责 对团队的Scrum工作流来说 xff0c SM履行的是过程领导的职责 职责 Scrum教练 是S
  • 用photoshop制作指定尺寸的证件照的方法

    有些朋友会遇到一些提交指定尺寸的证件照的要求 xff0c 例如照片的宽 高 xff0c 图中头部的长度或者宽度 今天我也遇到了这个要求 xff0c 自己尝试了几种做法 现在把我觉得最简单的一个方法和大家分享 例如要求图片尺寸为70mm 50
  • 什么是高性能计算,涉及哪些技术和知识呢?

    什么是高性能计算 xff0c 涉及哪些技术和知识呢 xff1f 高性能计算 High performance computing 指通常使用很多处理器 作为单个机器的一部分 或者某一集群中组织的几台计算机 作为单个计算资源操作 的计算系统和

随机推荐