「优选算法刷题」:查找总价格为目标值的两个商品

发布时间:2024年01月21日

一、题目

购物车内的商品价格按照升序记录于数组?price。请在购物车中找到两个商品的价格总和刚好是?target。若存在多种情况,返回任一结果即可。

示例 1:

输入:price = [3, 9, 12, 15], target = 18
输出:[3,15] 或者 [15,3]

示例 2:

输入:price = [8, 21, 27, 34, 52, 66], target = 61
输出:[27,34] 或者 [34,27]

二、思路解析

这道题算是简单一点的,我们还是用 双指针 来解决。

先定义一个 sum 变量,用于存放两个指针所在元素的值,然后进行以下调整即可:

三、完整代码

class Solution {
    public int[] twoSum(int[] price, int target) {
        int left = 0;
        int right = price.length-1;
        while(left < right){
            if(price[left] + price[right] < target){
                left++;
            }else if(price[left] + price[right] > target){
                right--;
            }else{
                return new int[] {price[left],price[right]};
            }
        }
        return new int[]{};
    }
}

以上就是本篇博客的全部内容啦,如有不足之处,还请各位指出,期待能和各位一起进步!

文章来源:https://blog.csdn.net/C_Small_Cai/article/details/135730002
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。