牛客网刷题之和为S的两个数字
来源:互联网 发布:用友软件操作流程 编辑:程序博客网 时间:2024/05/29 08:02
题目描述:
解题思路:
既然是排序的,当然优先考虑二分法,分别用两个指针分别指向左边第一个位置和右边第一个位置,左右逼近,当左边的位置大于等于右边的位置即可。题目要求是先输出乘积小的,由于我们每次先得到的都是一个小点的数和一个大点的数,故而和相等的情况下,乘积必定是最小的。
题解:
public ArrayList<Integer> FindNumbersWithSum(int [] array,int sum) { ArrayList<Integer> list = new ArrayList<>(); if(array == null || array.length < 2){ return list; } int left = 0 ; int right = array.length - 1; while(left < right){ if(array[left] + array[right] == sum){ list.add(array[left]); list.add(array[right]); return list; }else if(array[left] + array[right] > sum){ right--; }else{ left++; } } return list; }
ac结果:
0 0
- 牛客网刷题之和为S的两个数字
- 剑指Offer之和为S的两个数字
- 剑指offer面试题之和为S的两个数字
- 剑指offer(二十一)之和为S的两个数字
- 剑指offer之和为S的两个数字
- offer411--两个数字之和为s
- 【剑指offer之和为s的两个数字VS和为s的连续正数序列】
- 和为S的两个数字之和&&和为s的连续正数序列
- 【剑指offer】之和为给定值的两个数字
- 和为S的两个数字
- 和为S的两个数字
- 找出和为S的两个数字
- 和为S的两个数字
- 何为s的两个数字
- 【5】和为s的两个数字
- 和为S的两个数字
- 和为s的两个数字
- 和为s的两个数字
- 有关GetMemory()问题的思考
- HDU 2767 Proving Equivalences(待完善)
- LeetCode 141. Linked List Cycle
- Uva400 Unix ls 【排序+技巧】【例5-8】
- kafka简介、使用场景、设计原理、主要配置及集群搭建
- 牛客网刷题之和为S的两个数字
- 归并排序
- android_动态设置drawableLeft图片的大小
- 欢迎使用CSDN-markdown编辑器
- Java中用最有效率的方法算出2 乘以8
- PYQt4运行界面只能显示一次之后出现下面的错误:It seems the kernel died unexpectedly. Use 'Restart kernel' to continue usi
- Thread类的interrupt,interrupted,isInterrupted方法的理解
- soapUI模拟客户端以及服务端
- [1]jquery之jquery对象