【刷题篇】双指针(二)

news2024/11/17 0:39:33

文章目录

  • 1、有效三角形的个数
  • 2、查找总价格为目标值的两个商品
  • 3、三数之和
  • 4、四数之和

1、有效三角形的个数

给定一个包含非负整数的数组 nums ,返回其中可以组成三角形三条边的三元组个数。

在这里插入图片描述

class Solution {
public:
    int triangleNumber(vector<int>& nums) {
        int n=nums.size();
        int count=0;
        sort(nums.begin(),nums.end());
        for(int i=n-1;i>=2;i--)
        {
            if(nums[i]==0)
                continue;
            int left=0;
            int right=i-1;
            while(left<right)
            {
                if(nums[left]+nums[right]>nums[i])
                {
                    count+=(right-left);
                    right--;
                }
                else
                    left++;

            }
        }
        return count;
    }
};

2、查找总价格为目标值的两个商品

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

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

3、三数之和

给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i != j、i != k 且 j != k ,同时还满足 nums[i] + nums[j] + nums[k] == 0 。请
你返回所有和为 0 且不重复的三元组。
注意:答案中不可以包含重复的三元组。
在这里插入图片描述

class Solution {
public:
    vector<vector<int>> threeSum(vector<int>& nums) {
        int n=nums.size();
        sort(nums.begin(),nums.end());
        set<vector<int>> ret;
        for(int i=0;i<n-2;i++)
        {
            if(nums[i]>0)
                break;
            int left=i+1;
            int right=n-1;
            while(left<right)
            {
                if((nums[left]+nums[right])==-(nums[i]))
                {
                    ret.insert({nums[i],nums[left],nums[right]});
                    left++;
                    right--;
                }
                else if((nums[left]+nums[right])>-(nums[i]))
                    right--;
                else
                    left++;
            } 
        }
        vector<vector<int>> dummy(ret.begin(),ret.end());
        return dummy;
    }
};

4、四数之和

给你一个由 n 个整数组成的数组 nums ,和一个目标值 target 。请你找出并返回满足下述全部条件且不重复的四元组 [nums[a], nums[b], nums[c], nums[d]] (若两个四元组元素一一对应,则认为两个四元组重复):
0 <= a, b, c, d < n
a、b、c 和 d 互不相同
nums[a] + nums[b] + nums[c] + nums[d] == target
你可以按 任意顺序 返回答案 。
在这里插入图片描述

class Solution {
public:
    vector<vector<int>> fourSum(vector<int>& nums, int target) {
        int n=nums.size();
        set<vector<int>> ret;
        sort(nums.begin(),nums.end());
        for(int i=0;i<n;i++)
        {
            for(int j=i+1;j<n;j++)
            {
                int left=j+1;
                int right=n-1;
                while(left<right)
                {
                    long long sum=(long long)target-nums[i]-nums[j];
                    if(sum==(nums[left]+nums[right]))
                    {
                        ret.insert({nums[i],nums[j],nums[left],nums[right]});
                        left++;
                        right--;
                    }
                    else if(sum>(nums[left]+nums[right]))
                        left++;
                    else
                        right--;
                }
            }
        }
        vector<vector<int>> dummy(ret.begin(),ret.end());
        return dummy;
    }
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1656240.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

《MySQL对数据库中表的结构的操作》

文章目录 一、建表二、查看表结构所有能查看到数据库&#xff0c;表的操作痕迹的本质都是服务器保存下来了这些操作记录。 三、修改表1.改表名字2.添加表记录3.添加表的更多字段4.修改表的字段5. 删除表的字段 四、修改表的数据1.删除表的数据2.修改表的数据3.向表中添加数据 总…

【go项目01_学习记录02】

学习记录 1 新建项目2 自动重载安装air安装完成&#xff0c;查看版本&#xff1a;air -v使用air: air 3 设置标头4 如何知道 http 包有哪些接口呢&#xff1f;5 Web 数据响应6 小结 1 新建项目 windows系统&#xff0c;cmd&#xff1a; cd %GOPATH%/src //%GOPATH%表示取环境变…

【模型的量化 神经网络量化】对称量化与非对称量化 无符号数量化 有符号数量化

文章目录 量化方法1.非对称量化1.1 无符号量化&#xff08;uint8)1.2 有符号量化&#xff08;int8)1.3 代码1.4总结 2 对称量化2.1 无符号量化&#xff08;uint8)2.2 有符号量化&#xff08;uint8)2.3总结2.4 程序代码 减少模型大小&#xff1a;通过将模型的权重和激活值从浮点…

从抖音阳哥的经验看,选品师项目是否值得你投入?

在抖音这个短视频平台上&#xff0c;无数的创作者分享着他们的知识和经验&#xff0c;其中阳哥作为一个备受关注的博主&#xff0c;他的每一次分享都能引起广大网友的热烈讨论。最近&#xff0c;阳哥分享了一个名为“选品师”的项目&#xff0c;让许多对电商和抖音运营感兴趣的…

SpringCloud2024最新版链路追踪教程micrometer+zipkin

本文基于B站尚硅谷2024版springcloud教学视频&#xff0c;主要用于自己学习记录以及分享技术&#xff0c;侵权私删 自己本机环境信息&#xff1a; jdk&#xff1a;17.0.10springboot&#xff1a;3.2.0springcloud&#xff1a;2023.0.0 micrometer 之前行业内使用的分布式链路…

【yolov8 项目打包】pyinstaller 打包pyQt5 界面为exe

创建一篇博客文章&#xff0c;介绍如何使用PyInstaller将PyQt5界面打包为exe文件&#xff0c;并且处理与YOLOv8模型相关的文件&#xff0c;可以按照以下结构进行&#xff1a; 标题&#xff1a;使用PyInstaller将PyQt5界面与YOLOv8模型打包为Windows可执行文件 引言 在机器学习…

自建WSUS更新服务器完成内网的安全补丁更新

一、适用场景 1、企业内部网络无法访问外网&#xff0c;所以搭建WSUS服务器&#xff0c;可以让内网环境进行更新补丁。 2、校园内部的电脑实训室一般不用外网资源&#xff0c;偶尔开启外网使用时&#xff0c;电脑实训室集体自动更新占用外网资源量大&#xff0c;所以搭建WSUS服…

Mendix创客访谈录|助力工业领域,Mendix与IIOT相融合

本期创客 汤登揆 太平洋电信股份有限公司 AI 技术支持工程师 大家好&#xff0c;我是汤登揆&#xff0c;帝国理工大学&#xff0c;生态算法专业&#xff0c;主要关注于产品结构分析和产品应用落地。 目前任职于太平洋电信股份有限公司&#xff0c;主要专注于AI大模型的应用落地…

路由的基本

目录 一、VueRouter介绍 二、VueRouter的使用 三、注意 一、VueRouter介绍 VueRouter是Vue官方的一个路由插件&#xff0c;是一个第三方包。 作用&#xff1a;修改地址栏路径时&#xff0c;切换显示匹配的组件 官网:Vue Router (vuejs.org) 二、VueRouter的使用 注意&am…

ABUMN_公司内资产转移

ABUMN_公司内资产转移 一、功能介绍 使用事务码ABUMN进行公司内资产转移 二、程序代码 程序代码&#xff1a; *&---------------------------------------------------------------------* *& Report ZFIR218 *&---------------------------------------------…

如何确保UDP文件传输工具有最低稳定的传输速度?

在当前日新月异的数字时代背景下&#xff0c;文件传输工具已经成为我们日常生活与工作中不可或缺的一部分&#xff0c;尤其针对那些频繁涉及即时数据交互与多媒体流通的场景。 UDP协议&#xff0c;以其突出的高速传输与低延迟特性&#xff0c;脱颖而出成为众多用户的首选。不过…

通过自适应提示提升大语言模型的零样本推理能力

随着大模型&#xff08;LLMs&#xff09;的快速发展&#xff0c;它们在自然语言处理&#xff08;NLP&#xff09;任务上取得了前所未有的成就。特别是&#xff0c;LLMs展现出了强大的推理和规划能力&#xff0c;这得益于它们的少样本和零样本学习能力。然而&#xff0c;现有的方…

校验--ECC详细分析

ECC介绍 ECC 以下是针对瑞萨MCU的应用的ECC检测的详细分析。 当前公认安全有效的三大类公钥密钥体制分别为基于大数因子分解难题(RSA)、离散对数难题(DSA)和椭圆曲线离散对数&#xff08;ECC&#xff09;难题的密码体制。 保证RSA的安全性&#xff0c;则必须要增加密钥长度…

影响视频视觉质量的因素——各类视觉伪影

模糊效应&#xff08;Blurring Artifact&#xff09; 图像模糊&#xff08;blurring&#xff09;&#xff1a;平滑图像的细节和边缘产生的现象&#xff0c;模糊对于图像来说&#xff0c;是一个低通滤波器&#xff08;low-pass filter&#xff09;。一般而言&#xff0c;用户更…

Layer1 公链竞争破局者:Sui 生态的全面创新之路

随着 Sui 生态逐渐在全球范围内树立起声望&#xff0c;并通过与 Revolut 等前沿金融科技平台合作&#xff0c;推广区块链教育与应用&#xff0c;Sui 生态的未来发展方向已成为业界瞩目的焦点。如今&#xff0c;Sui 的总锁定价值已攀升至 5.93 亿美元&#xff0c;充分展示了其在…

python如何整体缩进

python自带编辑器的缩进和取消缩进快捷键&#xff1a; 整体缩进 Ctrl【 整体取消缩进 Ctrl】 pycharm编辑器的缩进和取消缩进快捷键&#xff1a; 整体缩进&#xff1a; tab 整体取消缩进&#xff1a; tabshift

【ZIP技巧】ZIP分卷压缩包如何解压?

经过压缩的文件仍然过大&#xff0c;大家可能都会选择“分卷压缩”来压缩ZIP文件&#xff0c;但是当我们将压缩包分卷之后&#xff0c;解压的时候该如何解压&#xff1f;今天我们分享两个ZIP分卷压缩包如何解压的方法给大家。 一、 我们可以直接点击第一个分卷压缩包&#xf…

USB系列四:USB数据传输类型(重要)

本章包括知识点如下&#xff0c;也是学习USB比较重要的一部分。 USB的块传输方式 USB的中断传输方式 USB的同步传输方式 USB的控制传输方式 USB3.0与USB2.0数据传输对比 USB总线技术协议具有极大的灵活性&#xff0c;可以针对不同的应用场合需求来采用最适合的…

分布式链路追踪工具Sky walking详解

1&#xff0c;为什么要使用分布式链路追踪工具 随着分布式系统和微服务架构的出现&#xff0c;且伴随着用户量的增加&#xff0c;项目的体量变得十分庞大&#xff0c;一次用户请求会经过多个系统&#xff0c;不同服务之间调用关系十分复杂&#xff0c;一旦一个系统出现错误都可…

逆向中webpack需要补充的模块很多怎么办

如下面这种典型的形式 进入i找到加载器 找到加载器所在函数r,在 return e[a].call(c.exports, c, c.exports, r),打上断点。 在控制台打印e,会发现它总共有的模块&#xff0c;这些模块需要我们在别的webpack中复制&#xff0c;有时很多&#xff0c;很麻烦。 我们可以注入代码在…