和为S的两个数字java实现
2017-10-06 11:02
211 查看
输入一个递增排序的数组和一个数字S,在数组中查找两个数,是的他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。
思路:利用夹逼算法,要两个数乘积最小,则应该是最小的和最大的那两个数。然后夹击遍历数组,找到乘积等于sum的数则返回,否则递减或递增继续查找。
思路:利用夹逼算法,要两个数乘积最小,则应该是最小的和最大的那两个数。然后夹击遍历数组,找到乘积等于sum的数则返回,否则递减或递增继续查找。
import java.util.ArrayList; public class Solution { public ArrayList<Integer> FindNumbersWithSum(int [] array,int sum) { ArrayList<Integer> result=new ArrayList<Integer>(); int length=array.length; int i=0,j=length-1; while(i<=j){ if(array[i]+array[j]<sum){ i++; continue; } if(array[i]+array[j]>sum){ j--; continue; } if(sum==(array[i]+array[j])){ result.add(array[i]); result.add(array[j]); return result; } } return result; } }
相关文章推荐
- 和为s的两个数字(Java实现)
- 《剑指offer》编程题java实现(十一):数组中只出现一次的两个数字
- android、Java下判断两个String是否相等 、EditText输入是否为空,限定输入数字的实现
- 用java实现欧几里得算法求两个数字的最大公约数
- android、Java下判断两个String是否相等 、EditText输入是否为空,限定输入数字的实现 总结
- android、Java下判断两个String是否相等 、EditText输入是否为空,限定输入数字的实现 总结
- 将天文数字转换成中文大写(.Net/C#/VB/T-SQL/Java 实现)
- js中,实现两个数字相加
- Java2下Applet数字签名具体实现方法
- js中,实现两个数字相加
- js中,实现两个数字相加
- Java2下Applet数字签名具体实现方法
- Java里数字转字符串前面自动补0的实现。
- Java中实现数字金额到中文大写字符的转换!!
- Java2下Applet数字签名具体实现方法
- 基础:Java里数字转字符串前面自动补0的实现
- Java2下Applet数字签名具体实现方法
- 转 .Net/C#/VB/T-SQL/Java/Script 实现: 将天文数字转换成中文大写 (2000 年前的思路,打劫的,一点儿技术含量都没有)
- 数字金额转换中文大写Java实现
- Java2下Applet数字签名具体实现方法