链接:LCR 179. 查找总价格为目标值的两个商品 - 力扣(LeetCode)
解法:利用单调性,使用双指针算法解决问题
1.先从小到大排序
2. sum > t : right--;
sum < t : left++;
sum = t : return
class Solution {
public int[] twoSum(int[] price, int target) {
int left = 0, right = price.length - 1;
while(left < right){
int sum = price[left] + price[right];
if(sum > target){
right--;
}
else if(sum < target){
left++;
}else{
return new int[] {price[left], price[right]};
}
}
//照顾编译器
return new int[]{0};
}
}
复杂度分析:
- 时间复杂度:O(n)
- 空间复杂度:O(1)