一、题目
购物车内的商品价格按照升序记录于数组?price
。请在购物车中找到两个商品的价格总和刚好是?target
。若存在多种情况,返回任一结果即可。
示例 1:
输入:price = [3, 9, 12, 15], target = 18 输出:[3,15] 或者 [15,3]
示例 2:
输入:price = [8, 21, 27, 34, 52, 66], target = 61 输出:[27,34] 或者 [34,27]
二、思路解析
这道题算是简单一点的,我们还是用 双指针 来解决。
先定义一个 sum 变量,用于存放两个指针所在元素的值,然后进行以下调整即可:
三、完整代码
class Solution {
public int[] twoSum(int[] price, int target) {
int left = 0;
int right = price.length-1;
while(left < right){
if(price[left] + price[right] < target){
left++;
}else if(price[left] + price[right] > target){
right--;
}else{
return new int[] {price[left],price[right]};
}
}
return new int[]{};
}
}
以上就是本篇博客的全部内容啦,如有不足之处,还请各位指出,期待能和各位一起进步!