题目链接:LCR 179. 查找总价格为目标值的两个商品
利用双指针位于数值两端来进行控制,定义sum来记录两指针分别对应的值的和,
这里有个重要的点就是该数组是升序,所以:
- 当sum > target时,end--,缩小sum值;
- 当sum < target时,first++,增大sum值;
- 当sum = target时,就找到对应值;
- 如果first == target时,没有找到对应值,返回空。
class Solution {
public: //价格 目标vector<int> twoSum(vector<int>& price, int target) {int first = 0;int end = price.size()-1;int sum = 0;//int*p;vector<int> num;while(first!=end){sum = price[first]+price[end];if(sum>target){end--;}else if(sum<target){first++;}else {return {price[first],price[end]};}}return {};}
};