《剑指offer》和为s的两个数字
生活随笔
收集整理的這篇文章主要介紹了
《剑指offer》和为s的两个数字
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目:輸入一個遞增排序的數組和一個數字S,在數組中查找兩個數,是的他們的和正好是S,如果有多對數字的和等于S,輸出兩個數的乘積最小的。
輸出描述:
對應每個測試案例,輸出兩個數,小的先輸出。
解析:由于是遞增的數組,所以找到一對數字就是乘機最小的了
import java.util.ArrayList; import java.util.Collections; public class Solution {public ArrayList<Integer> FindNumbersWithSum(int [] array,int sum) {ArrayList<Integer> result = new ArrayList<>();for(int i=0;i<array.length;i++){if(result.size()>0){//已經存在一對數字了,找到了,可以返回了return result;}int totalSum=array[i];for(int j=i+1;j<array.length;j++){totalSum+=array[j];if(totalSum==sum){result.add(array[i]);result.add(array[j]);break;}else {//不滿足條件,當前的array[j]需要被減掉totalSum-=array[j];}}}return result;} }總結
以上是生活随笔為你收集整理的《剑指offer》和为s的两个数字的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《剑指offer》和为s的连续正数序列
- 下一篇: 《剑指offer》左旋转字符串