寻找和为定值的n个数

算法学习笔记6-寻找和为定值的两个数(二分查找) 本文参考了文章《寻找和为定值的两个数》寻找和为定值的两个数题目描述输入一个数组和一个数字,在数组中查找两个数,使得它们的和正好是输入的那个数字。要求时间复杂度是O(N)。如果有多对数字的和等于输入的数字,输出任意一对即可。例如输入数组1、2、4、7、11、15和数字15。由于4+11=15,因此输出4和11。 阅读详情

寻找和为定值的N个数

题目:

输入两个整数n和sum,要求从数列1, 2, 3, ...,n中随意取出几个数,使得它们的和等于sum,请将其中所有可能的组合列出来。

思路:

上述问题是典型的背包问题的应用,即先找出n个数的所有组合,再在这些组合中寻找组合数相加之和等于sum的组合,并依次输出这些组合中的数。

实现:

public class ManySumN {

       public static void main(String[] args) {

              new ManySumN().printManySumN(5, 4);

       }    

       public String[] getAllGroup(int n) {

              intlen = (int) Math.pow(2, n);

              String[] result = new String[len];

              if(n == 1) {

                     result[0]= "0";

                     result[1]= "1";

                     return result;

              }

              String[] temp = getAllGroup(n - 1);

              for(int i = 0; i < temp.length; i++) {

                     result[i]= "0" + temp[i];

                     result[len- 1 - i] = "1" + temp[i];

              }

              return result;

       }  

       public void printManySumN(int n, int sum){

              String[] allGroup = getAllGroup(n);

              for(int i = 0; i < allGroup.length; i++) {

                     char[]temp = allGroup[i].toCharArray();

                     inttempSum = 0;

                     for(int j = 0; j < temp.length; j++) {

                            if(temp[j]=='1'){

                                   tempSum+=(j+1);

                            }

                     }

                     if(tempSum== sum){

                            for(int j=0;j<temp.length;j++){

                                   if(temp[j]=='1'){

                                          System.out.print((j+1)+"");

                                   }

                            }

                            System.out.println();

                     }

              }

       }

}

有序数列中查找和为某定值的两个数 问题描述: 输入一个已经按升序排序过的数组和一个数字,在数组中查找两个数,使得它们的和正好是输入的那个数字。要求时间复杂度是O(n)。 如果有多对数字的和等于输入的数字,输出任意一对即可。例如输入数组1、2、4、7、11、15和数字15。由于4+11=15,因此输出4和11。 算法: 阅读详情

相关推荐

Algorithm:C+语言实现之数组相关算法(和为定值的两个数、和为定值的m个数、荷兰国旗、长度为2n的洗牌算法、任意长度数组的洗牌算法)

Algorithm:C+语言实现之数组相关算法(和为定值的两个数、和为定值的m个数、荷兰国旗、长度为2n的洗牌算法、任意长度数组的洗牌算法) 目录 数组 1、寻找和为定值的两个数 2、和为定值的m个数 3、荷兰国旗问题 4、长度为2n的完美洗牌算法 5、任意长度数组的完美洗牌算法 数组 1、寻找和为定值的两个数 输入一个数组A[0…N-1]和一个数...

头部AI社区如有邀博主AI主题演讲请私信—心比天高,仗剑走天涯,保持热爱,奔赴向梦想!低调,专注,谦虚,自律,反思,成长,还算比较正能量的博主,公益免费传播…内心特别想在AI界做出一些可以推进历史进程影响力的技术(兴趣使然,有点小情怀,也有点使命感呀 4357

leetcode Sum 系列----寻找和为定值的多个数

july 大神有个程序员编程艺术系列,第五章《寻找和为定值的多个数》,现在我们站在大牛的肩膀上,对leetcode上n个数求和的系列问题做个阶段性总结。 1.leetcode No.1 2sum Given an array of integers, return indices of the two numbers such that they add up to a specifi...

shiter编写程序的艺术 8704

AT32F403A ADC通道管理与转换模式实战解析

本文深入解析AT32F403A微控制器的ADC模块,重点阐述其通道管理机制与四种转换模式(序列模式、抢占自动转换模式、反复模式、分割模式)的实战应用。通过详细的配置步骤与代码示例,帮助开发者高效实现模拟数字转换,优化数据采集性能与系统响应。

sky77的博客 279

寻找和为给定值的n个数

文章目录问题描述:输入一个数组A[0..N-1]和一个数字Sum,在数组中查找n个数使得他们的和为Sum。1.n=2(找两个数)2.n=m(找若干个数) 问题描述:输入一个数组A[0…N-1]和一个数字Sum,在数组中查找n个数使得他们的和为Sum。 1.n=2(找两个数) 1)直接暴力法 实现思路:直接遍历整个数组,让每一个数字和其他数组相加,如果和为Sum,输出;否则,接着遍历。 实现方法如下...

Dr-Yang的博客 1425

AXI总线的Burst Type以及地址计算 | WRAP到底是怎么一回事?

AXI总线的transaction是burst-based的,因此有必要好好研究一下不同burst type的工作原理。此处略过burst的定义以及burst size、burst length等信号的介绍。

qiuzhongyu123的博客 2万+

基于eNSP的小型企业网络设计

在本次计算机网络课程设计中,围绕“小型企业网络搭建”这一主题,成功构建了一个高效、安全且易于管理的企业内部网络。通过本次课程设计,我们不仅掌握了小型企业网络搭建的关键技术和最佳实践,还培养了团队协作和问题解决的能力。本项目所构建的网络系统不仅满足了当前的业务需求,还具备良好的可扩展性和灵活性,为企业未来的数字化转型奠定了坚实的基础。

m0_67403143的博客 1442

寻找和为定值的多个数

15.3SumGiven an array S of n integers, are there elements a, b, c in S such that a + b + c = 0? Find all unique triplets in the array which gives the sum of zero.Note: The solution set must not contain

qazwyc的博客 926

循环卷积和线性卷积(矩阵视角)

矩阵视角的循环卷积核线性卷积

shengsong 3578

java 寻找和为定值的多个数_算法笔记_037:寻找和为定值的两个数(Java)

1 问题描述输入一个整数数组和一个整数,在数组中查找两个数,满足他们的和正好是输入的那个整数。如果有多对数的和等于输入的整数,输出任意一对即可。例如,如果输入数组[1,2,4,5,7,11,15]和整数15,那么由于4+11 = 15,因此输出4和11。2 解决方案2.1 排序夹逼法首先将整数数组,使用合并排序进行从小打到的排序,然后对这个排完序的数组从两头往中间遍历,一旦出现两个数的和等于输入的...

weixin_36127428的博客 665

MacOS下微信小程序源码提取与逆向实战:从找到.wxapkg到完整还原

本文详细介绍了在MacOS系统下进行微信小程序源码提取与逆向分析的完整实战流程。从定位沙盒机制中的.wxapkg缓存文件,到搭建Node.js环境与配置wxappUnpacker工具链,再到执行核心反编译命令并处理分包等复杂情况,提供了清晰的操作步骤。文章还汇总了Node版本、依赖缺失、文件乱码等常见问题的解决方案,旨在帮助开发者、安全研究人员高效完成小程序安全审计与学习。

weixin_29246195的博客 1600

保姆级教程:断网环境下用Flexnet服务器搞定SolidWorks 2021安装与破解(附错误5解决方案)

本文提供SolidWorks 2021在断网环境下的企业级部署指南,详细解析Flexnet服务器本地化工作原理,并给出安装与破解的实战方案,特别针对常见的'错误5'问题提供多维度解决方案。适用于需要内网隔离或移动办公的工业设计场景,确保数据安全与授权合规。

weixin_28683391的博客 297

在数组中寻找和为定值的n个数

1 /*-------------------------------------------------------*/ 2 /*寻找和为定值的两个数 3 输入一个数组A[0,N-1]和一个数字Sum,在数组中查找 4 两个数Ai,Aj,是真的Ai+Aj=Sum*/ 5 /*解法一:暴力求解*/ 6 /*解法二:一个数组两头扫*/ 7 8 void TwoSu...

weixin_30512785的博客 950

CAN总线入门(硬件部分)

这篇博客讲述CAN总线入门知识。

记得诚 1万+

寻找和为定值的N个数

1.寻找和为定值的N个数#include #include using namespace std; list list1; void GetNSum(int *a,int k, int n) { if(k == a[n-1]) { list::iterator it; for(it = list1.begin();it!=list1.end();it++) { cout<<

lin_FS的专栏 1005

YOLOv12改进前必看 - YAML模型配置文件详细解读(再也不用担心通道数不匹配) 附网络结构图

YOLOv12的模型配置文件在中,里面包含yolov12的以及的不同大小的模型,本文将详细介绍一下YOLOv12模型文件中各参数的含义。

Limiiiing的博客 3275

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

寻找和为定值的n个数(Java版)

Java基于递归的版本: 代码里有简略的注释 import java.util.*; public class Demo { static ArrayList&lt;ArrayList&lt;Integer&gt;&gt; lists = new ArrayList&lt;&gt;(); static LinkedList&lt;Integer&gt; fuck = new...

1868

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

【July程序员编程艺术】之寻找和为定值的两个或者多个数

一.寻找和为定值的两个数题目:输入一个数组和一个数字,在数组中查找两个数,使得它们的和正好是输入的那个数字。 要求时间复杂度是O(n)。如果有多对数字的和等于输入的数字,输出任意一对即可。 例如输入数组1、2、4、7、11、15和数字15。由于4+11=15,因此输出4和11。我的思路:题目要求时间复杂度是O(n),所以整个数组只可以遍历一轮。针对题目中给出的实例,对于数4,我们实际上就是要找数

messiran10的专栏 816

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

【程序员编程艺术】第五章:寻找满足和为定值的两个或多个数

题目描述 输入一个数组和一个数字,在数组中查找两个数,使得它们的和正好是输入的那个数字。 要求时间复杂度是O(N)。如果有多对数字的和等于输入的数字,输出任意一对即可。 例如输入数组1、2、4、7、11、15和数字15。由于4+11=15,因此输出4和11。

solar一抹阳光的专栏 1497

寻找和为定值的两个数

题目:输入一个数组和一个数字,在数组中查找两个数,使得它们的和正好是输入的那个数字。要求时间复杂度是O(n)。如果有多对数字的和等于输入的数字,输出任意一对即可。例如输入数组1、2、4、7、11、15和数字15。由于4+11=15,因此输出4和11。 解析:如果数组是无序的,先排序(n*logn),然后用两个指针i,j,各自指向数组的首尾两端,令...

weixin_33873846的博客 79

【题目】Problem C.寻找i*j=m的个数

Problem C.寻找i*j=m的个数 问题描述 3*3的矩阵内容。 1 2 3 2 4 6 3 6 9 即a[i][j] (1<=i<=n,1<=j<=n) = ij。 问一个这样nn的矩阵里面,里面m出现的次数。 例如n为3,m为6. 那么出现的次数就是2 Input 输入正整数N,表示N例测试(N<=20)。接着输入n(n<=105),(m<=...

漆黑梦工厂 431

请用算法实现 ,从给定的无序、不重复的数组data中,取出n个数,使其相加和为sum.

请用算法实现 ,从给定的无序、不重复的数组data中,取出n个数,使其相加和为sum.并给出算法的时间/空间复杂度。(不需要找到所有的解); function getRsult(data,n,sum){ if(n==0 &amp;&amp;sum==0){ return true } if(n&lt;0){ return false } if(...

weixin_44616890的博客 4870

(10)寻找满足和为定值的两个或多个数

程序员编程艺术:第五章、寻找和为定值的两个或多个数       作者:July,yansha,zhouzhenren。     致谢:微软100题实现组,编程艺术室。     微博:http://weibo.com/julyweibo   。     出处:http://blog.youkuaiyun.com/v_JULY_v  。     wiki:http://tctop.wikispac

dangzhileiqaz的专栏 949

python 版 输入一个已经按升序排序过的数组和一个数字,在数组中查找两个数,使得它们的和正好是输入的那个数字

python 版 题目:输入一个已经按升序排序过的数组和一个数字,在数组中查找两个数,使得它们的和正好是输入的那个数字。 要求时间复杂度是 O(n)。如果有多对数字的和等于输入的数字,输出任意一对即可。例如输入数组 1、2、4、7、11、15 和数字 15。由于 4+11=15,因此输出 4 和 11。 思路: (1)让指针指向数组的头部和尾部,相加,如果小于M,则增大头指针,如果大于则减小尾指针...

ly_58的博客 2627

matlab 怎么求数组里面每个元素个数_数组问题集合

这个题集后面的内容都是DP,头疼。1.输入n个整数,输出最小的k个Solution-1: 先排序后输出O(nlogn)//快速排序复杂度Solution-2:把数组分为length=k, length=n-k两部分,通过比较大小来做//O(n*k)Solution-3:用堆来处理O(n*logk)Further:谷歌面试题:输入是两个整数数组,他们任意两个数的和又可以组成一个数组,求这个和中前k个...

weixin_39798626的博客 4704
上一篇: 设计模式之抽象工厂模式
下一篇: JDBC中Statement、PreparedStatement 、CallableStatement 区别和联系
dream天空
博客等级 码龄12年 8粉丝 69原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值