输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。

in 编程
关注公众号【好便宜】( ID:haopianyi222 ),领红包啦~
阿里云,国内最大的云服务商,注册就送数千元优惠券:https://t.cn/AiQe5A0g
腾讯云,良心云,价格优惠: https://t.cn/AieHwwKl
搬瓦工,CN2 GIA 优质线路,搭梯子、海外建站推荐: https://t.cn/AieHwfX9

import java.util.ArrayList;

public class Solution {

public ArrayList<Integer> FindNumbersWithSum(int [] array,int sum) {
    
    ArrayList<Integer> list = new ArrayList<Integer>();
    
    int len=array.length-1;
    if(len<2)
        return list;
    
    int left=0;
    int right=len;
    
    int total= array[left]+array[right];
    while(left<right){
        while(total<sum&&left<right)
            total=array[right]+array[++left];
        
        while(total>sum&&right>left)
            total=array[left]+array[--right];
       
        if(total==sum)
            break;
    }
    
    if(left==right)
        return list;
    
    list.add(array[left]);
    list.add(array[right]);
   
    return list;
}

}

关注公众号【好便宜】( ID:haopianyi222 ),领红包啦~
阿里云,国内最大的云服务商,注册就送数千元优惠券:https://t.cn/AiQe5A0g
腾讯云,良心云,价格优惠: https://t.cn/AieHwwKl
搬瓦工,CN2 GIA 优质线路,搭梯子、海外建站推荐: https://t.cn/AieHwfX9
扫一扫关注公众号添加购物返利助手,领红包
Comments are closed.

推荐使用阿里云服务器

超多优惠券

服务器最低一折,一年不到100!

朕已阅去看看