LeetCode热题100刷题2:283. 移动零、11. 盛最多水的容器、15. 三数之和、42. 接雨水

283. 移动零

挺简单的没啥说的

在这里插入图片描述

class Solution {
public:void moveZeroes(vector<int>& nums) {//快慢指针  // 快指针负责往前遍历,慢指针记录快指针遍历过的把0撵走的最后一个元素的位置// 然后快指针遍历完之后,慢指针到结尾直接赋0就行int j=0;for(int i=0;i<nums.size();i++) {if(nums[i]!=0) {nums[j]=nums[i];j++;}else {continue;}}for(int i = j;i<nums.size();i++) {nums[i]=0;}}
};

11. 盛最多水的容器

双指针,主要是控制i和j的移动逻辑:左边高度低i++,右边高度低j–
在这里插入图片描述

class Solution {
public:int maxArea(vector<int>& height) {int i=0;int j=height.size()-1;int res = 0;while(i<j) {if(height[i] <= height[j]) {int h = height[i];int w = j-i;res = max(res,w*h);i++;}else if(height[i] > height[j]) {int h = height[j];int w = j-i;res = max(res,w*h);j--;}}return res;}
};

15. 三数之和

在这里插入图片描述

**三个数改为两个数的双指针:外层逐个遍历负值nums[i],内层用双指针控制和为-nums[i]
注意 不重复 这个限制条件①外层循环的nums[i]不重复②内层nums[j] 和 nums[k]也不重复
**

class Solution {
public:vector<vector<int>> threeSum(vector<int>& nums) {vector<vector<int>> res;if(nums.size()<3)return res;sort(nums.begin(),nums.end());for(int i=0;i<nums.size();i++) {if(nums[i] > 0) {return res;}if(i>0 && nums[i]==nums[i-1])continue;int j = i+1;int k = nums.size()-1;while(j<k) {if(nums[j]+nums[k] > -nums[i])k--;else if(nums[j]+nums[k] < -nums[i])j++;else if(nums[j] + nums[k] == -nums[i]){res.push_back(vector<int>{nums[i],nums[j],nums[k]});j++;k--;//这里的判断条件 附加了 j<k,要满足这个外层while循环的前提条件while(j<k && nums[j]==nums[j-1])j++;while(j<k && nums[k]==nums[k+1])k--;}}}return res;}
};

42. 接雨水

双指针,以左侧最大值left_max为基准计算当前左侧指针柱子的落差,以右侧最大值right_max为基准计算当前右侧指针柱子的落差:然后ans +=
left_max - height[left]
right_max-height[right]
每次计算的时候加上前面已经计算过的雨水;
最后注意控制左右侧指针的移动

在这里插入图片描述

class Solution {
public://双指针做法 秒呀~// left, l_max  right, r_maxint trap(vector<int>& height) {if(height.size()<=1)return 0;int l=0;int l_max=height[l];int r=height.size()-1;int r_max = height[r];int ans = 0;while(l<r) {l_max = max(l_max,height[l]);r_max = max(r_max,height[r]);if(height[l] < height[r]) {ans = ans+(l_max - height[l]);l++;}else if(height[r] <= height[l]) {ans = ans+(r_max-height[r]);r--;}}return ans;}
};

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

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

相关文章

objective-c和c语言

Objective-C 是基于 C 语言开发的一种面向对象编程语言。具体来说&#xff0c;Objective-C 在 C 语言的基础上增加了面向对象编程的特性。以下是它们之间的关系和主要区别&#xff1a; 关系 基于 C 语言&#xff1a; Objective-C 完全兼容 C 语言代码。你可以在 Objective-C 程…

LeetCode题练习与总结:环形链表Ⅱ--142

一、题目描述 给定一个链表的头节点 head &#xff0c;返回链表开始入环的第一个节点。 如果链表无环&#xff0c;则返回 null。 如果链表中有某个节点&#xff0c;可以通过连续跟踪 next 指针再次到达&#xff0c;则链表中存在环。 为了表示给定链表中的环&#xff0c;评测…

数据资产驱动的智能化转型之路:深入解析数据资产在数字化转型中的核心作用,构建全面、智能的数据资产解决方案,助力企业实现智能化运营和决策,引领行业创新

目录 一、引言 二、数据资产在数字化转型中的核心作用 1、决策支持 2、业务优化 3、创新驱动 4、风险管理 三、构建全面、智能的数据资产解决方案 1、数据资产战略规划 2、数据资产采集与整合 3、数据资产治理 4、数据资产分析与挖掘 5、数据资产应用与服务 四、数…

【PHP】实现类的无缝动态扩展,设计模式,php工厂模式应用场景,以下代码是工厂模式在框架设计中的真实使用案例代码

php工厂模式应用场景&#xff0c;以下代码是工厂模式在框架设计中的真实使用案例代码 PHP工厂模式&#xff0c;适用于多种场景&#xff0c;主要包括&#xff1a; 创建对象过程复杂&#xff1a;当创建对象的过程比较复杂&#xff0c;需要进行一些预处理或者计算&#xff0c;并…

【JVM-01】引言

【JVM-01】引言 1. 什么是JVM&#xff1f;2. JDK、JRE、JVM比较3.常用的JVM有那些4.学习路线 1. 什么是JVM&#xff1f; JVM即 Java Virtual Machine(Java虚拟机)&#xff0c;是Java程序运行的环境(Java 二进制字节码运行环境)。 好处&#xff1a; 一次编写&#xff0c;到处…

【操作系统期末速成】EP05 | 学习笔记(基于五道口一只鸭)

文章目录 一、前言&#x1f680;&#x1f680;&#x1f680;二、正文&#xff1a;☀️☀️☀️2.1 考点十一&#xff1a;死锁的概念与预防2.2 考点十二&#xff1a;死锁的避免一银行间算法2.1 考点十三&#xff1a;死锁的检测与解除 一、前言&#x1f680;&#x1f680;&#x…

【wsl2】升级wsl及ubuntu22.04

y9kp的wsl2 还是用的自己的子网 很久没用wsl2的ubutnu22.04系统 发现无法启动 等待了挺久&#xff0c;启动了 但同时我也在升级wsl中&#xff1a; 升级wsl wsl --update 这个升级是对ubuntu22.04的运行没影响。 apt-get update 然后upgrade wsl2的升级一直在90%多不动 然…

Flex 布局和 Grid 布局的区别

1. Flex 布局 专注解决一维布局&#xff0c;不管是横向还是纵向&#xff0c;它总能保证这个元素在这个容器里优雅的进行伸缩和对齐。 使用场景&#xff1a;1. 响应式导航。2. 卡片式布局。3. 队列布局 2. Grid 布局 专注解决二位布局的 应用场景&#xff1a;1. 复杂的网页…

C语言 | Leetcode C语言题解之第206题反转链表

题目&#xff1a; 题解&#xff1a; struct ListNode* reverseList(struct ListNode* head) {if (head NULL || head->next NULL) {return head;}struct ListNode* newHead reverseList(head->next);head->next->next head;head->next NULL;return newHea…

动态应用安全测试 (DAST) 与渗透测试:应用程序安全测试综合指南

二十多年来,Web 应用程序一直是许多企业的支柱,因此其安全性至关重要。 动态应用程序安全测试 (DAST) 和渗透测试对于识别和缓解 Web 应用程序安全中的安全漏洞至关重要。 虽然两者都旨在增强应用程序安全性,但它们在方法、执行和结果方面存在很大差异。 本综合指南将探讨…

正版软件 | R-Studio T80+:数据恢复与取证分析的专业之选

在数据恢复和数字取证领域&#xff0c;专业人士需要一款强大、可靠的工具来应对复杂和高要求的任务。R-Studio T80 由 R-TT 公司推出的新型许可软件&#xff0c;以其年度付费订阅模式&#xff0c;为专家提供了成本效益更高的解决方案。 全面功能&#xff0c;专业服务 R-Studio …

Python自动化测试:web自动化测试——selenium API、unittest框架的使用

web自动化测试2 1. 设计用例的方法——selenium API1.1 基本元素定位1&#xff09;定位单个唯一元素2&#xff09;定位一组元素3&#xff09;定位多窗口/多框架4&#xff09;定位连续层级5&#xff09;定位下拉框6&#xff09;定位div框 1.2 基本操作1.3 等待1.4 浏览器操作1.5…

【python学习】 __pycache__ 文件是什么

__pycache__文件是Python中的一个特殊目录&#xff0c;主要用于存储已编译的字节码文件&#xff08;.pyc文件&#xff09;。以下是关于__pycache__文件的详细解释&#xff1a; 作用&#xff1a;当Python解释器执行一个模块时&#xff0c;它会首先检查是否存在对应的.pyc文件。…

百度网盘下载速度慢的解决办法

目录 一、背景 二、解决办法 1、点击三个竖点&#xff0c;再点设置 2、点击传输&#xff0c;再点击去开启该功能 3、点击同意&#xff0c;开启优化速率 三、结果 四、备注 一、背景 当你不是百度网盘会员时&#xff0c;你在使用百度网盘下载时&#xff0c;是否下载速度太…

Java 搭建个人博客基本框架

为了实现一个功能完善的个人博客系统&#xff0c;我们将使用Spring Boot作为框架&#xff0c;MySQL作为数据库&#xff0c;并引入Spring Security来处理用户认证和授权。以下是系统的详细设计和实现步骤&#xff1a; ## 项目结构 - src/main/java/com/blog - controller …

window下git bash设置启动后默认路径进入自己的工程

方法一&#xff1a;更改快捷方式 方法二&#xff1a;修改~/.bashrc

用英文介绍美国总统:Barack Obama First African-American President (2009 – 2017)

Barack Obama: First African-American President (2009 – 2017) Link: https://www.youtube.com/watch?vwHCBI3yypmE&listPLybg94GvOJ9E-ZM1U6PAjgPUmz-V4-Yja&index44 Introduction Barack Obama made history as the first African-American elected to the pre…

Linux开发讲课28---Linux USB 设备驱动模型

Linux 内核源码&#xff1a;include\linux\usb.h Linux 内核源码&#xff1a;drivers\hid\usbhid\usbmouse.c 1. BUS/DEV/DRV 模型 "USB 接口"是逻辑上的 USB 设备&#xff0c;编写的 usb_driver 驱动程序&#xff0c;支持的是"USB 接口"&#xff1a; US…

DDR自学笔记

DDR的技术发展 标准名称 内核时钟(MHz) I/O时钟(MHz) 工作电压(v) 预取位数 突发长度 数据速率(MT/s) 数据带宽(GB/s) 拓扑 SDRAM 100-166 100-166 3.3 1 / 100-166 0.8-1.3 T DDR 133-200 133-200 2.5 2n 2 266-400 2.1-3.2 T DDR2 133-200 266-…

【面试干货】与的区别:位运算符与逻辑运算符的深入探讨

【面试干货】&与&&的区别&#xff1a;位运算符与逻辑运算符的深入探讨 1、&&#xff1a;位运算符2、&&&#xff1a;逻辑运算符3、&与&&的区别 &#x1f496;The Begin&#x1f496;点点关注&#xff0c;收藏不迷路&#x1f496; & 和 …