和为S的两个数字

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

示例 1:

输入:nums = [2,7,11,15], target = 9
输出:[2,7] 或者 [7,2]

示例 2:

输入:nums = [10,26,30,31,47,60], target = 40
输出:[10,30] 或者 [30,10]
 1 class Solution {
 2     public int[] twoSum(int[] nums, int target) {
 3       int left = 0,right = nums.length-1;
 4       
 5       while(left<right){
 6           if(target>(nums[left]+nums[right])){
 7               left++;
 8           }else if(target<(nums[left]+nums[right])){
 9               right--;
10           }else{
11               return new int[]{nums[left],nums[right]};
12           }
13       }
14       return new int[0];
15     }
16 }

 

posted @ 2020-09-05 10:35  王余阳  阅读(137)  评论(0)    收藏  举报