[双指针] 6. 查找总价为目标值的两个商品

题目链接

https://leetcode.cn/problems/he-wei-sde-liang-ge-shu-zi-lcof/

一. 题目描述

cpp 复制代码
class Solution {
public:
    vector<int> twoSum(vector<int>& price, int target) {
        
    }
};

二. 解题思路

  1. 本题利用单调性和双指针,是非常简单的一道题。

其实就是根据单调性,大了左往走,小了往右走,相等就返回。

  1. 需要注意的是,要为找不到的情况随便返回一个值(走不到这条语句)。这道题的测试用例都是一定能找到一对相加等于target的值的,但是力扣平台不允许出现可能某条路径没有返回值。我们知道前两条判断只是过程最终一定会走到else语句返回一组值,但是平台认为如果在if或者else if结束了会没有返回值,所以我们在最后添加return {-1, -1}; // 隐式类型转换

三. 代码实现

cpp 复制代码
class Solution 
{
public:
    vector<int> twoSum(vector<int>& price, int target) 
    {
        int left = 0, right = price.size()-1;
        while(left < right)
        {
            if(price[left] + price[right] < target)
                left++;
            else if(price[left] + price[right] > target)
                right--;
            else
                return {price[left], price[right]};
        }
        return {-1, -1}; // 查找失败
    }
};
相关推荐
ChoSeitaku8 小时前
06_可变参数_递归_类和对象_封装
java·数据结构·算法
-To be number.wan8 小时前
算法日记 | 动态规划(初级)
算法·动态规划
_深海凉_8 小时前
LeetCode热题100-二叉搜索树中第 K 小的元素
算法·leetcode·职场和发展
图码8 小时前
文本两端对齐算法详解:从LeetCode到实际应用
数据结构·图像处理·算法·leetcode·生成对抗网络·面试·职场和发展
liu****8 小时前
第16届国赛蓝桥杯大赛C/C++大学C组
c语言·数据结构·c++·算法·蓝桥杯
沈浩(种子思维作者)8 小时前
物理的本质是数学,还是数学只是描述物理的方便之语?
人工智能·python·算法
黎阳之光8 小时前
数智孪生,全景可视——黎阳之光透明仓库,重构智慧仓储新范式
大数据·人工智能·算法·安全·数字孪生
生成论实验室8 小时前
WOLM认知引擎:为系统赋予“知止”的生命本能——一套确定性、内生安全的通用认知决策内核
人工智能·算法·机器学习·自动驾驶·安全架构
黎阳之光8 小时前
智慧公安视频孪生平台:构建全域治安防控可视化体系
大数据·人工智能·算法·安全·数字孪生
大鸣王潮20248 小时前
Flow-GRPO vs Flow-Factory: SD3 GRPO 实现对比
人工智能·算法