题解 | 和为S的两个数字

和为S的两个数字

https://www.nowcoder.com/practice/390da4f7a00f44bea7c2f3d19491311b

import java.util.*;
import java.util.ArrayList;
public class Solution {
    public ArrayList<Integer> FindNumbersWithSum(int [] array,int sum) {
        ArrayList<Integer> result=new ArrayList<>();
        if(array==null||array.length<2) return result;
        int left=0,right=array.length-1;
        while(left<right){
            int t=array[left]+array[right];
            if(t==sum){
                result.add(array[left]);
                result.add(array[right]);
                return result;
            }else if(t>sum){
                right--;
            }else left++;
        }
        return result;

    }
}

利用两个指针,一个指头部,一个指尾部,在循环中不断判断是否满足条件,满足条件则直接返回,不满足则更新指针。

全部评论

相关推荐

震撼沃玛一整年:查看图片
点赞 评论 收藏
分享
Ncsbbss:又想干活又想要工资,怎么什么好事都让你占了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务