大兴智能网站建设哪家好,怎么用免费的网站空间,wordpress 允许评论,插画设计网站推荐1 问题描述输入一个整数数组和一个整数#xff0c;在数组中查找两个数#xff0c;满足他们的和正好是输入的那个整数。如果有多对数的和等于输入的整数#xff0c;输出任意一对即可。例如#xff0c;如果输入数组[1,2,4,5,7,11,15]和整数15#xff0c;那么由于411 15在数组中查找两个数满足他们的和正好是输入的那个整数。如果有多对数的和等于输入的整数输出任意一对即可。例如如果输入数组[1,2,4,5,7,11,15]和整数15那么由于411 15因此输出4和11。2 解决方案2.1 排序夹逼法首先将整数数组使用合并排序进行从小打到的排序然后对这个排完序的数组从两头往中间遍历一旦出现两个数的和等于输入的那个整数则立即输出这两个数并结束遍历。具体代码如下package com.liuzhen.array_2;public class TwoSumN {/** 参数A给定的一个从小到大排序的数组* 参数n:待求和数n* 函数功能打印出A中两个元素满足A[i]A[j] n*/public void getTwoSumN(int[] A,int n){int start 0;int end A.length - 1;while(start end){if(A[start] A[end] n){System.out.println(\n数组中元素A[start] A[end] n,A[start] A[start],A[end] A[end]);break;}else{if(A[start] A[end] n)end--;elsestart;}}}//归并排序public void mergeSort(int[] A){if(A.length 1){int[] leftA getHalfArray(A,0); //数组A的左半部分int[] rightA getHalfArray(A,1); //数组A的右半部分mergeSort(leftA);mergeSort(rightA);getMerge(A,leftA,rightA);}}/** 参数A要进行折半的数组* 参数judge:judge 0表示返回数组A左上半部分judge ! 0表示返回数组A的右半部分* 函数功能把数组按照长度均分为上半部分和下半部分*/public int[] getHalfArray(int[] A,int judge){int[] result;if(judge 0){result new int[A.length/2];for(int i 0;i A.length/2;i)result[i] A[i];}else{result new int[A.length - A.length/2];for(int i 0;i A.length - A.length/2;i)result[i] A[iA.length/2];}return result;}/**参数A给定待排序数组*参数leftA:数组A的左半部分*参数rightA:数组的右半部分*函数功能返回数组A的从小到大排序*/public void getMerge(int[] A,int[] leftA,int[] rightA){int i 0; //用于计算当前遍历leftA的元素个数int j 0; //用于计算当前遍历rightA的元素个数int count 0; //用于计算当前得到按从小到大排序的A的元素个数while(i leftA.length j rightA.length){if(leftA[i] rightA[j]){A[count] leftA[i];i;}else{A[count] rightA[j];j;}}if(i leftA.length){while(i leftA.length)A[count] leftA[i];}if(j rightA.length){while(j rightA.length)A[count] rightA[j];}}public static void main(String[] args){TwoSumN test new TwoSumN();int[] A {2,1,7,4,6,1,2,4,3,6,8,4,2,1,7,3,4,6,8,3,4};test.mergeSort(A);System.out.println(对数组A进行合并排序后结果);for(int i 0;i A.length;i)System.out.print(A[i] );test.getTwoSumN(A, 10);}}运行结果;对数组A进行合并排序后结果1 1 1 2 2 2 3 3 3 4 4 4 4 4 6 6 6 7 7 8 8数组中元素A[3] A[20] 10,A[3] 2,A[20] 8算法笔记lowbar;041colon;寻找和为定值的多个数(Java)目录 1 问题描述 2 解决方案 1 问题描述 输入两个整数n和sum,要求从数列1,2,3,...,n中随意取出几个数,使得它们的和等于sum,请将其中所有可能的组合列出来. 2 解决方案 上述问题 ...在数组中寻找和为定值的n个数/*-------------------------------------------------------*/ /*寻找和为定值的两个数 输入一个数组A[0,N-1]和一个数字Sum,在数组中 ...编程之法section IIcolon; 2period;2 和为定值的两个数数组篇 2.2 求和为定值的两个数: 题目描述:有n个整数,找出其中满足两数相加为target的两个数(如果有多组满足,只需要找出其中一组),要求时间复杂度尽可能低. 解法一: 思路: ...【Data Structure ampsemi; Algorithm】在排序数组中查找和为定值的两个数在排序数组中查找和为定值的两个数 题目:输入一个已经按升序排序过的数组和一个数字,在数组中查找两个数,使得它们的和正好是输入的那个数字,要求时间复杂度是O(n).如果有多对数字的和等于输入的数字,输出 ...Java实现寻找和为定值的多个数1 问题描述 输入两个整数n和sum,要求从数列1,2,3,-,n中随意取出几个数,使得它们的和等于sum,请将其中所有可能的组合列出来. 2 解决方案 上述问题是典型的背包问题的应用,即先找出n个数 ...【剑指offer】和为定值的两个数转载请注明出处:http://blog.csdn.net/ns_code/article/details/24933341 题目描写叙述: 输入一个递增排序的数组和一个数字S,在数组中查找两个数,是的 ...【剑指offer学习】求和为定值的两个数(拓展)接着上面一篇文章: http://blog.csdn.net/u013476464/article/details/40651451 接下来我们拓展一下题目,如果数组是乱序的,并且规定数组中的元素所有 ...算法笔记lowbar;035colon;寻找最小的k个数(Java)目录 1 问题描述 2 解决方案 2.1 全部排序法 2.2 部分排序法 2.3 用堆代替数组法 2.4线性选择算法 1 问题描述 有n个整数,请找出其中最小的k个数,要求时间复杂度尽可能低. 2 ...算法笔记lowbar;031colon;计算中值和选择问题(Java)目录 1 问题描述 2 解决方案 2.1 计算中值问题 2.2 选择问题 1 问题描述 中值问题是求一个n个数列表中某一数组下标k,它要求该下标元素比列表中的一半元素大,又比另一半元素小,这个中 ...随机推荐ReactJS入门(四)—— 组件API本篇将介绍 React 组件的API,其中主要的几个API我们在第一篇的时候便已介绍过,这里可以做个温故知新. 本篇的代码你也可以在我的Github上获取到. setState 参数: nextSta ...深入理解Bootstrap笔记框架介绍 1.框架简介 2.CSS基本语法 3.JavaScript基本语法 4.Bootstrap整体架构 5.12栅格系统 6.CSS组件架构设计思想 7.JavaScript插件架构 CSS布局 ...iOS——Command-Line 查看当前SDK版本并修改默认SDK版本在工作中可能会碰到用命令行编译.打包iOS应用程序的情况(xcodebuild相关命令). 但是由于SDK版本问题,会报错,说某SDK版本不对,可能是因为升级Xcode导致的SDK版本升级,为了避免高 ...objective-c中字符串长度计算我们知道,在c语言中,使用sizeof ()计算在内存中占用的字节数, 引用string.h后,使用strlen()计算字符串的长度(不包含\0). 而在object-c中, length ...Struts2 框架验证struts2框架验证(xml方式): * 首先要从页面中获取对应的标签name属性的值,在动作类action中声明同名的属性,提供get和set方法 * 创建一个xml格式验证文 ...STM32串口usart发送数据主函数请直接关注41行到47行代码!! #include stm32f10x.h // 相当于51单片机中的 #include #include ...新人入坑Redis必会的吐血总结新人入坑Redis必会的吐血总结 一.什么是Redis Redis是一个使用C语言开发的开源的高性能的key-value存储系统,我们可以把它近似理解为Java Map.简单来讲,Redis是一种NO ...JDBC辅助类封装 及应用一:代码图解: 二:配置文件: driverClassNamecom.mysql.jdbc.Driver urljdbc\:mysql\://127.0.0.1\:3306/xlzj_sh_new ...Ubuntu18period;10下运行blender2period;80bate闪退lpar;问题quest;rpar;Ubuntu18.10下直接运行blender2.80bate闪退, 运行blender2.79正常. roottom-laptop:/# uname -aLin ...禁用firefox 56自动更新firefox 56支持旧式扩展,这很重要! 它却自动更新,简单地关了也不行,很是牛氓! -备份C:\Users\用户名\AppData\Roaming\Mozilla\Fire ...