【算法刷题】总结规律 算法题目第1讲:双指针处理数组题目 带视频讲解 -针对考研/复试/面试 解决痛点:1. 刷了就忘 2.换一道相似的题就不会

算法题目第一讲:双指针处理数组题目

解决力扣:

  • [344. 反转字符串]
  • [167. 两数之和 II - 输入有序数组]
  • [26. 删除有序数组中的重复项]
  • [27. 移除元素]
  • [283. 移动零]
  • [5. 最长回文子串]

配合b站视频讲解食用更佳:https://www.bilibili.com/video/BV1vW4y1P7V7

核心提示:好几道题是处理有序数组的!

适合人群:考研/复试/面试

解决痛点:1. 刷了就忘 2.换一道相似的题就不会

学完后会输出:对每类题目的框架

344.反转字符串

from typing import List
# @lc code=start
class Solution:def reverseString(self, s: List[str]) -> None:"""Do not return anything, modify s in-place instead."""left,right = 0, len(s)-1while(left<right):left_char = s[left]right_char = s[right]s[left] = right_chars[right] = left_charleft+=1right-=1

167:
有序数组,

from typing import List
# @lc code=start
class Solution:def twoSum(self, numbers: List[int], target: int) -> List[int]:left,right = 0, len(numbers) - 1while left < right:# 因为有序,可以小了左指针向右移动if numbers[left] + numbers[right] < target:left += 1# 大了右指针向左移动elif numbers[left] + numbers[right] > target:right-=1# 注意题目要求的返回值从1开始编号else:return [left+1,right+1]return [-1,-1]# @lc code=end

26 删除有序数组中的重复元素

# @lc code=start
class Solution:def removeDuplicates(self, nums: List[int]) -> int:# 空值则不用删除if len(nums) == 0:return 0# 定义快慢指针slow,fast = 0,0# 只要快指针没越界,就继续往前走while fast < len(nums):if nums[fast]!=nums[slow]: # 不相等时慢指针需要+1slow+=1 # 维护nums[0..slow]无重复nums[slow] = nums[fast]fast+=1# 返回的是唯一值的个数,也就是slow+1return slow+1

27.移除元素

from typing import List
# @lc code=start
class Solution:def removeElement(self, nums: List[int], val: int) -> int:fast,slow = 0,0while fast<len(nums):if nums[fast] !=val:nums[slow] = nums[fast]slow +=1fast+=1return slow
  1. 移动零
class Solution:def moveZeroes(self, nums: List[int]) -> None:"""Do not return anything, modify nums in-place instead."""# step1:用快慢双指针把非0的按顺序排好slow,fast = 0,0while fast < len(nums):if nums[fast]!=0:nums[slow] = nums[fast]slow+=1fast+=1# 最后几个补0操作 range是左闭右开的, 19行slow+1,所以不会覆盖# 若全是0 则16行的while一次都没调用,全部补0, 从[0,len(nums)) 也是对的    for i in range(slow,len(nums)):nums[i] = 0

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

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

相关文章

CAN通信(报文测试)

问题&#xff1a;对安全模块的程序进行修改&#xff0c;将18串采样温度改成32串采样温度&#xff0c;相应can通信的帧数存在一定的变化&#xff0c;利用广成科技CANtest上位机软件或者内部上位机观察报文发送和接收情况。 1、内部上位机 内部上位机&#xff0c;设置相应的波特…

VCG 创建指定三维Mesh网格

文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 VCG为我们提供了很多预先定义好的Mesh对象,如四面体、球体、正方体等等,相关代码如下所示。 二、实现代码 //VCG #include <vcg/complex/algorithms/create/platonic.h> #include <wrap/io_trimesh/imp…

数据密集型应用系统设计--3.2 事务处理与分析处理

在商业数据处理的早期阶段&#xff0c;写人数据库通常对应于商业交易场景&#xff0c;例如销售、订单、支付员工工资等。尽管后来数据库扩展到了不涉及金钱交易的领域&#xff0c;事务一词仍然存在&#xff0c;主要指组成一个逻辑单元的一组读写操作。 事务不一定具有ACID&…

.pings勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复

导言&#xff1a; 随着科技的发展&#xff0c;网络空间中的威胁也日益猖獗&#xff0c;其中之一就是勒索病毒&#xff0c;而.pings 勒索病毒则是其中的一种。本文将深入介绍.pings 勒索病毒的特征、恢复被其加密的数据文件的方法&#xff0c;并提供预防措施&#xff0c;以保障…

机械硬盘损坏导致win11卡顿和机箱滴滴报警一例

从至少半年前&#xff0c;机箱就一直会滴滴叫。不是开机报警内存不过那种&#xff0c;声音比较小。间距也比较大。当时也不知道怎么回事。同时&#xff0c;win11经常卡顿。cpy一下子100%&#xff0c;根本动不了。重装系统也解决不了。到了这两天&#xff0c;系统进不去了。表现…

使用metricbeat 监控多ES集群

背景 ES 本身自带 监控&#xff0c;属于xpack 中的内容&#xff0c;为商业版&#xff0c;需要收费&#xff1b; 并且 monitor 功能必须要在security开启后才能使用&#xff0c;还有就是集群监控自己&#xff0c;将采集到的性能数据保存到本集群&#xff0c;这是一个比较差的设…

分布式事务(1)

事务是操作数据库中某个数据项的一个程序执行单元。具有4个属性&#xff1a;原子性、一致性、隔离性、持久性。 事务四个特征 1、Atomic原子性 事务中包含的各项操作在一次执行过程中&#xff0c;要么全部执行成功&#xff0c;要么全部不执行。 2、Consistency一致性 事务…

统信专业版编译electron问题总结

一、环境信息 操作系统版本:统信专业版本1060 CPU架构:arm64 electron版本:v25.9.5 chromium版本:114 打开开发者权限 二、electron编译问题总结 2.1 编译参数生成问题 在执行 gn gen out/Release --args=“import(”//electron/build/args/release.gn")"过程…

PHP知识点复习

史上最全爆肝整理PHP入门笔记&#xff08;总结分享&#xff09;-php教程-PHP中文网 PHP开发学习资料集合(入门进阶必备&#xff0c;建议收藏) - 知乎 https://www.cnblogs.com/li1056822533/p/6409989.html 1&#xff0e; LAMP具体结构不包含下面哪种&#xff08;A &#xf…

grpc c++使用示例

文章目录 1 proto文件编辑2 生成C代码2.1 生成protobuf&#xff08;反&#xff09;序列化代码2.2 生成服务框架代码 3 同步server端3.1 命名空间3.2 重写服务3.3 启动服务3.4 完整代码 4 同步client端4.1 命名空间4.2 定义客户端4.3 完整代码 5 异步server端 手把手写rpc范例流…

2023年信息安全管理与评估—应用程序安全解析

第三部分 应用程序安全(90分) 目录 第三部分 应用程序安全(90分)

autodl学术加速

今天使用autodl加载预训练BERT模型失败&#xff0c;在官方文档里面找到了官方给的代理使用方法。 直接在bash输入&#xff1a; 开启学术加速&#xff1a; source /etc/network_turbo取消学术加速&#xff1a; unset http_proxy && unset https_proxy据说是只能访问这…

java线程池参数及合理设置

java线程池参数及合理设置 线程池的7大核心参数 corePoolSize 核心线程数目核心线程会一直存活&#xff0c;及时没有任务需要执行&#xff0c;当线程数小于核心线程数时&#xff0c;即使有线程空闲&#xff0c;线程池也会优先创建新线程处理当设置allowCoreThreadTimeouttru…

目标检测YOLO实战应用案例100讲-多目标检测及追踪(续)

目录 3.3 改进CenterNet网络(Improved-CenterNet) 3.3.1多特征融合模块的设计 3.3.2 DCN模块设计

关键字、标志符、变量

1、关键字 1.1、定义 定义&#xff1a;被JAVA语言赋予了特殊含义&#xff0c;用作专门用途的字符串&#xff08;或单词&#xff09; 特点&#xff1a;全部关键字都是小写字母 上源码&#xff1a; 代码中定义类的关键字class&#xff0c;定义一个订单控制器类 ​​​​​​​…

【Unity美术】如何用3DsMax做一个水桶模型

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;元宇宙-秩沅 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 秩沅 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a;Uni…

echarts图表会残留上一条数据的折线 setOption参数的第二个坑

记一下小坑 因为我的echarts图表的 series 是循环渲染上去的 所以他可能会有一条 或多条 我展示完多条的图表后 关闭 打开单条数据的图表 发现 他会残留上一个图表的数据 显示多条 之前我还以为是后端返回错了 但是log打印和查看请求数据 确实发现是我这边的问题 原因&#…

【Java集合篇】HashMap的hash方法是如何实现的?

HashMap的hash方法是如何实现的? ✔️ 典型解析✔️ 拓展知识仓✔️ 使用&代替%运算✔️扰动计算 ✔️ 典型解析 hash 方法的功能是根据 Key 来定位这个K-V在链表数组中的位置的。也就是hash方法的输入应该是个Object类型的Key&#xff0c;输出应该是个int类型的数组下标。…

Kibana相关问题及答案(2024)

1、如何在Kibana中创建一个仪表板&#xff1f; 在Kibana中创建一个仪表板涉及到在其界面中完成几个主要步骤的过程。这里是详细的分步指南&#xff1a; 第 1 步&#xff1a;设计和规划 在你开始之前&#xff0c;思考以下问题将帮助你设计高效的仪表板&#xff1a; 数据源&a…

Redis底层原理篇(SDS与IntSet)

1.SDS动态字符串 2.intSet contents[]整数数组存的是地址 具备有序的特性 有自动扩容机制&#xff0c;自动扩容时倒序赋值