算法练习:查找总价格为目标值的两个商品

题目链接: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 {};
    }
};

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值