167 two sum

给定一个有序数组,求能够求和形成target的两个元素。

由于是有序,可以用O(n)复杂度完成。两指针同时指向前后,判断该如何移动即可。

class Solution {
    public int[] twoSum(int[] numbers, int target) {

        if(numbers==null || numbers.length<2) return null;
        int l= 0;
        int r= numbers.length-1;
        while(l<r){
            int sum= numbers[l]+numbers[r];
            if(sum== target){return new int[]{l+1,r+1};}
            else if(sum< target){l++;}
            else{r--;}
        }
        return null;
    }
}

猜你喜欢

转载自blog.csdn.net/better_girl/article/details/83582774