167. Two Sum II - Input array is sorted

来源:互联网 发布:冯小刚 王思聪 知乎 编辑:程序博客网 时间:2024/06/16 03:49
    public static int[] twoSum(int[] numbers, int target) {        int[] result = new int[2];        if(numbers == null || numbers.length == 0) {            return result;        }        for(int i = 0; i < numbers.length; i++) {            int index = binarySearch(numbers, i+1, target-numbers[i]);            if(index > 0) {                result[0] = i+1;                result[1] = index+1;                break;            }        }        return result;    }    public static int binarySearch(int[] nums, int start,int target) {        int i = start, j = nums.length-1,mid = 0;        boolean find = false;        while(i <= j) {            mid = (i+j)/2;            if(nums[mid] == target) {                find = true;                break;            }else if(nums[mid] > target) {                j = mid-1;            }else {                i = mid + 1;            }        }        if(find) {            return mid;        }else {            return -1;        }    }
0 0
原创粉丝点击