題目
劍指 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^51 <= 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];
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/352136.html
標籤:其他
