剑指 Offer 57. 和为s的两个数字

package leetcode;

public class offer_57 {
    public int[] twoSum(int[] nums, int target) {
        int[] arr=new int[2];
        int left=0;
        int right=nums.length-1;
        while(left<right) {
            if(left<right&&nums[left]+nums[right]==target) {
                arr[0]=nums[left];
                arr[1]=nums[right];
                break;
            }
        //数组有序,则当前和小于target时,左指针加一
while(left<right&&nums[left]+nums[right]<target) { left=left+1; }
        //当前和大于target时,右指针减一
while(left<right&&nums[left]+nums[right]>target) { right=right-1; } } return arr; } public static void main(String[] args) { // TODO Auto-generated method stub offer_57 off=new offer_57(); int[] nums= {10,26,30,31,47,60}; for(int i:off.twoSum(nums, 40)) { System.out.println(i); } } }

 

posted on 2022-03-14 10:38  一仟零一夜丶  阅读(25)  评论(0)    收藏  举报