题目
剑指 Offer 57. 和为s两个数字
题目概述
输入递增排序的数组和数字s,在数组中找到两个数字,使它们的和谐恰到好处s。如果有多对数字和等于s,输出任何一对。
示例
nums = [2,7,11,15], target = 9 [2,7] 或者 [7,2]nums = [10,26,30,31,47,60], target = 40 [10,30] 或者 [30,10]
1 <= nums.length <= 10^5
1 <= nums[i]<= 10^6
基础框架
class Solution { public int[] twoSum(int[] nums, int target) { } }
解题思路
可以解决双指针
代码详解
class Solution { public int[] twoSum(int[] nums, int target) { int left=0; int right=nums.length-1; while(left<right){ if(nums[left] nums[right]<target){left ;} else if(nums[left] nums[right]>target){right--;} else return new int[]{nums[left],nums[right]}; } return new int[0]; } }