算法练习:查找总价格为目标值的两个商品
题目链接:https://leetcode.cn/problems/he-wei-sde-liang-ge-shu-zi-lcof/
题目思路:通过双指针(头尾指针)不断控制大小,进而得出目标商品
通过变量sum来计算first与end位置对应值的和,
如果sum>target,移动end,减小值;
如果sum<target,移动first,增大值;
如果sum=target,那么first与end对应的值就是要找的目标商品和。
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 {};
}
};