【刷题篇】双指针(二)

文章目录

  • 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--;}elseleft++;}}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++;elseright--;}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--;elseleft++;} }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++;elseright--;}}}vector<vector<int>> dummy(ret.begin(),ret.end());return dummy;}
};

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

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

相关文章

MQTT服务搭建及python使用示例

1、MQTT协议 1.1、MQTT介绍 MQTT&#xff08;Message Queuing Telemetry Transport&#xff09;是一种轻量级的、基于发布/订阅模式的通信协议&#xff0c;通常用于物联网设备之间的通讯。它具有低带宽、低功耗和开放性等特点&#xff0c;适合在网络带宽有限或者网络连接不稳定…

联发科天玑AI开发套件亮相:开发智能终端生成式AI应用的全面工具

在今日召开的天玑开发者大会2024&#xff08;MDDC 2024&#xff09;上&#xff0c;联发科向外界展示了其最新力作——天玑AI开发套件。该套件是为合作伙伴提供终端生成式AI应用开发的一站式工具包&#xff0c;意在简化并加速开发过程。 联发科推出的天玑AI开发套件包括四大核心…

去除图片水印软件-inpaint

一、普通使用教程 亲眼看看使用 Inpaint 从照片中删除不需要的元素是多么容易&#xff1a; 1.1加载图片 1.2 选择要纠正的问题区域 1.3 告别不需要的对象并保存 二、功能 1 修复旧照片 老并不总是意味着坏。我们拥有的一些旧照片对我们来说仍然很重要&#xff0c;因为它们仍…

leetcode 2266.统计打字方案数

思路&#xff1a;dp。 这道题其实也是爬楼梯的变形。 不过&#xff0c;这里需要分类讨论一下&#xff1a;就是选择7或者9的时候是4种递推情况&#xff0c;其他的都是3种。 而且&#xff0c;我们可以利用dp数组过程记录的特点运用在本题当中。 这里需要解决几个问题&#xf…

minio上传文件失败如何解决

1. 做了什么操作 通过接口上传excel文件&#xff0c;返回响应值 2. 错误如图 2. 如何解决 根据错误描述定位到了部署minio的地方minio通过docker部署&#xff0c;找到docker - compose发现配置文件中minio有两个端口&#xff0c;一个是用于api的&#xff0c;一个是用于管理界面…

Dell EMC Storage Unity: Remove/Install Memory Module

SP A 一个内存故障 点击system view -> Enclosures->Top查看 再次查看Alert&#xff0c; 确认内存出现问题 进入Service &#xff0c; 将SP A置为service状态 移出SP A &#xff0c;进行内存更换 更换完内存后&#xff0c;将SP A插入设备&#xff0c;并进行线缆连接 进入…

6层板学习笔记2

说明:笔记基于6层全志H3消费电子0.65MM间距BGA 67、多层板的电源建议直接大面积铺铜,不建议走线,铺铜充分满足其载流能力 68、凡亿推荐表层1OZ的铜厚线宽20MIL能承载1A的电流,内层0.5OZ的铜厚线宽为40MIL能承载1A的电流,过孔直径20MIL(0.5MM)能承载1A左右的电流,实际设…

Django项目中的Nginx+uWSGI

Django项目中的NginxuWSGI部署 配合另一篇博客共同饮用Django项目服务器部署&#xff08;2024最新&#xff09; 一&#xff1a;Nginx uWSGI部署框架 用户浏览器向nginx发送请求&#xff0c;nginx判断请求是动态海事静态&#xff0c;如果是静态请求&#xff0c;则直接返回静态…

(五)JSP教程——response对象

response对象主要用于动态响应客户端请求&#xff08;request&#xff09;&#xff0c;然后将JSP处理后的结果返回给客户端浏览器。JSP容器根据客户端的请求建立一个默认的response对象&#xff0c;然后使用response对象动态地创建Web页面、改变HTTP标头、返回服务器端地状态码…

c++ socket基于TCP

linux网络编程基础api socket 地址api&#xff1a;ip地址和端口对&#xff0c;成为 soccket 地址。 socket 基础api&#xff1a; sys/socket.h 中&#xff0c;包括创建、命名、监听 socket &#xff1b;接受连接、发起连接、读写数据、获取地址信息、检测带外标记、读取设置 s…

unity ui 同屏

一共有三个摄像机&#xff0c;上屏&#xff0c;下屏 和 类似照相机的ccamera 类似照相机的ccamera的设置&#xff1a; 下屏摄像机设置&#xff1a; 下屏交互的Canvas设置&#xff1a; 新建一个canvas&#xff0c;下面放上rawimage&#xff1a; 如果下屏不想显示的内容&#xf…

创建和管理数据库

1. 一条数据的存储过程 存储数据是处理数据的第一步.只有正确的把数据存储起来&#xff0c;我们才能进行有效的处理和分析.否则&#xff0c;只能是一团乱麻.在MySQL中&#xff0c;一个完整的数据存储过程一共有四步 : 创建数据库&#xff0c;确认字段&#xff0c;创建数据表&a…

LeetCode题练习与总结:格雷编码--89

一、题目描述 n 位格雷码序列 是一个由 2^n 个整数组成的序列&#xff0c;其中&#xff1a; 每个整数都在范围 [0, 2^n - 1] 内&#xff08;含 0 和 2^n - 1&#xff09;第一个整数是 0一个整数在序列中出现 不超过一次每对 相邻 整数的二进制表示 恰好一位不同 &#xff0c;…

【练习3】

1.将二叉搜索树转为排序的双向链表 (好久没看数据结构&#xff0c;忘完了&#xff0c;学习大佬的代码&#xff09; class Solution { public:Node* prenullptr,*headnullptr; //pre为每次遍历时的前一个节点&#xff0c;head记录头节点Node* treeToDoublyList(Node* root) {if…

漏扫神器Invicti V2024.4.0专业版

前言 Invicti Professional是Invicti Security公司推出的一个产品&#xff0c;它是一种高级的网络安全扫描工具。Invicti Professional旨在帮助组织发现和修复其网络系统中的潜在安全漏洞和弱点。它提供了全面的漏洞扫描功能&#xff0c;包括Web应用程序和网络基础设施的漏洞扫…

vue3点击复制粘贴

1、安装库并引入 npm i vue-clipboard3 --save2.封装为一个函数 import useClipboard from vue-clipboard3;const { toClipboard } useClipboard();// 点击复制文本const copyText (text: string) > {return new Promise((resolve, reject) > {try {//复制toClipboar…

持续总结中!2024年面试必问 100 道 Java基础面试题(三十五)

上一篇地址&#xff1a;持续总结中&#xff01;2024年面试必问 100 道 Java基础面试题&#xff08;三十四&#xff09;-CSDN博客 六十九、Java中的UUID是什么&#xff1f; 在Java中&#xff0c;UUID&#xff08;Universally Unique Identifier&#xff09;是一种用于生成唯一…

记录: Python解析yml文件,顺序解析,带所有文件等号

记录: Python解析yml文件&#xff0c;顺序解析&#xff0c;带所有文件等号from yaml.composer import Composer from yaml.constructor import Constructor import yamlclass ParseYml:def __init__(self):passstaticmethoddef parse(yml_pathNone):try:loader yaml.Loader(op…

xhs 旋转滑块流程分析

声明 本文章中所有内容仅供学习交流&#xff0c;抓包内容、敏感网址、数据接口均已做脱敏处理&#xff0c;严禁用于商业用途和非法用途&#xff0c;否则由此产生的一切后果均与作者无关&#xff0c;若有侵权&#xff0c;请联系我立即删除&#xff01; 前言 本文首发于公众号…

近似消息传递算法(AMP)单测量模型(SMV)

1、算法解决问题 很多人致力于解决SLM模型的求逆问题&#xff0c;即知道观测值和测量矩阵&#xff08;字典之类的&#xff09;&#xff0c;要求未知变量的值。SLM又叫做标准线性模型&#xff0c;后续又在此基础上进行升级变为广义线性模型。即SLM是yAxe&#xff0c;这里是线性…