剑指Offer—42—和为S的两个数字
来源:互联网 发布:win10 办公软件 编辑:程序博客网 时间:2024/05/22 17:40
和为S的两个数字 : 输入一个递增排序的数组和一个数字 S,在数组中查找两个数,是的他们的和正好是 S,如果有多对数字的和等于 S,输出两个数的乘积最小的。
package A42和为S的两个数字;import java.util.ArrayList;import java.util.List;public class Solution { public ArrayList<Integer> FindNumbersWithSum(int [] array,int sum) { ArrayList<Integer> list = new ArrayList<>(); if (array.length < 3){ return list; } int small = 0; int big = array.length-1; int mid = (sum+1) >> 1; // 值 int minValue = Integer.MAX_VALUE; while (array[small] < mid){ if (array[small]+array[big] > sum){ big--; }else if (array[small]+array[big] < sum){ small++; }else { if (array[small]*array[big] < minValue) { list.clear(); minValue = array[small]*array[big]; list.add(array[small]); list.add(array[big]); } small++; } } return list; } public static void main(String[] args) { Solution solution = new Solution(); int[] a = {1,2,4,7,11,16}; List<Integer> list = solution.FindNumbersWithSum(a,17); for (Integer integer: list) { System.out.println(integer); } }}
package A42和为S的两个数字;import java.util.ArrayList;public class Solution1 { public ArrayList<Integer> FindNumbersWithSum(int [] array, int sum) { int max = Integer.MAX_VALUE; ArrayList<Integer> list = new ArrayList<>(); if (array.length<2) { return list; } int small = 0; int big = array.length-1; while (small < big) { if (array[small] + array[big] > sum) { big--; }else if (array[small] + array[big] < sum) { small++; }else { if (max > array[small] * array[big] ) { max = array[small] * array[big];// list.clear(); list.add(array[small]); list.add(array[big]); } big--; } } return list; }}
阅读全文
0 0
- 《剑指offer》——和为S的两个数字
- 剑指offer——和为S的两个数字
- 剑指offer——和为S的两个数字
- 剑指offer——和为S的两个数字
- 剑指offer—和为S的两个数字
- 剑指offer—-和为S的两个数字
- 剑指offer—和为s的两个数字
- 剑指offer — 和为S的两个数字
- 剑指Offer—42—和为S的两个数字
- 剑指offer——和为s的两个数字VS和为s的连续正数序列
- 剑指offer 面试题41—和为s的两个数字VS和为s的连续正数序列
- 剑指offer——和为s的两个数字且乘积最小
- 剑指offer(java代码)——和为S的两个数字
- 剑指Offer——(41)和为S的两个数字
- 剑指offer——面试题41:和为s 的两个数字
- 剑指offer系列源码-和为S的两个数字
- 剑指offer--和为S的两个数字
- 《剑指offer》和为S的两个数字
- 简单三步帮你建立博客
- Cpp-关于变量
- UI控件之UILabel
- mysql常用统计sql记录
- pyspark-wordcount
- 剑指Offer—42—和为S的两个数字
- iOS socket 简单使用
- 关于内存泄漏和内存分析检测的简单描述
- JVM调优总结
- CSS3 鲜为人知的属性-webkit-tap-highlight-color的理解
- java虚拟机、jdbc的statement
- Https的时代,这些你都不知道还好意思说自己是高级程序员
- Java_SimpleDateFormat
- LightOJ-1011-Marriage Ceremonies [状态压缩][DP]