欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

和为s的两个数字

程序员文章站 2024-03-22 14:29:58
...

剑指offer——和为 s 的两个数字

题目描述

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

输入:
 

[1,2,4,7,11,15],15

返回值:

[4,11]
public ArrayList<Integer>  FindNumbersWithSum(int[] arr, int sum){
    ArrayList<Integer> list = new ArrayList<>();
    if(arr == null || arr.lengt < 2)    
        return list;
    int i = 0;
    int j = arr.length - 1;
    while(i < j){
        if(arr[i] + arr[j] == sum){
            list.add(arr[i]);
            list.add(arr[j]);
            return list;
        }
        else if(arr[i] + arr[j] < sum){
            i++;
        }
        else{
            j--;
        }
    }
    
    return list;
    

}