当前位置: 首页 > news >正文

优选算法1:双指针

1.移动零

题目描述

算法思路

算法思路:我们可以先用一个变量dest遍历数组,cur停留在-1位置,通过dest遍历到的元数进行处理,让[ 0 ,cur ] 全是非零元素,[ cur+1,dest-1]全是0。

算法流程:先让cur = 0;dest = -1,然后再让dest遍历数组,当dest下标元素非零时,让cur++,然后将cur所指向的值和dest交换,就完成了一次搬运,将此过程重复。

算法实现

2.复写零

题目描述

算法思路

1)定义两个指针:left,rijht,先要找到最后一个复写数,再从最后一个复写数开始判断,此时right指向最后一个复写数,left在数组最后一个数上。

1.1要找到最后一个复写数,就要先让left = -1,right = 0,让right作为“扫描”判断下标指的数是否为0,当为0时left走两步,否着走一步,当left>=数组长度时,跳出循环,此时right就找到最后一个复写数。

2)判断极端情况

当倒数第二个数是0时,此时left会大于数组长度,而我们就让arr[--left] = 0,倒数第一个数为0,然后left和right都 --。

3)最后从后往前遍历,当right != 0 时,就让left的值等于right的值,等于0就让left前两个 数为0。

算法实现

3.快乐数

题目描述

算法思路

双指针不是只用于数组,可以定义一个快慢指针,让两个指针前进,因为两个指针走的路相同,所以在进入循环前是不会相同的,那么当两个指针的值相同时,此时就满足相同的情况。

算法实现

4.盛水最多的容器

题目描述

算法思路

1)给定的一段数组,要去判断两端,指定两个指针。

2)从较短的一端为例,体积是长度乘上高度,当短的一段向里运动时,长度减小,当里面的高度小于运动端的长度,高度减小,此时体积减小;当里面的高度大于外面时,此时里面的水高度不变,体积减小。那么就不需要较小的那一端。

3)让两个指针一个从头开始,一个从尾开始,先计算体积,当计算完后较小的那一短移动。

算法实现

查找和为T的两个数

题目描述

算法思路

设定两个指针,right和left,一个等于数组长度,一个为0,两个指针对应下标相加,因为数组是序数组,当相加大于target时,right加任何数都是大于,此时让right--;小于就让left++。

算法实现

http://www.dtcms.com/a/344379.html

相关文章:

  • 如何在Vscode中配置MCP服务?(包含实例:使用Github Copilot + 高德MCP查询旅游攻略)
  • 聚焦AI与绿色双碳 金士顿亮相2025深圳国际电子展
  • 【链表 - LeetCode】2. 两数相加
  • 深度学习——神经网络
  • 深度学习赋能光纤非线性光学:Nature Comms揭示噪声驱动系统的智能预测框架
  • 【openGLES】着色器语言(GLSL)
  • CAM可视化卷积神经网络
  • 开源 python 应用 开发(十一)短语音转文本
  • 安卓手机格式转换,支持PDF转Word、PDF转Excel、PDF转PPT、PDT转图片
  • 基于ERNIE 4.5的多智能体协作的自动化视频舆情分析报告生成器
  • UE5基本打光(新手向)
  • vue2整合uniapp、uviewUi小程序开发
  • Yapi中通过MongoDB修改管理员密码与新增管理员
  • PDF 转 TIFF 性能测评:IronPDF具有更快的处理速度、更少的内存
  • 携程旅游的 AI 网关落地实践
  • 爬虫基础学习-链接协议分析,熟悉相关函数
  • C++中的右值引用与通用引用:std::move与std::forward的正确使用 (Effective Modern C++ 条款25)
  • 中项-基础知识分享12-软件工程
  • 保护 PDF 格式:禁止转换为其他格式文件
  • Python第三方库IPFS-API使用详解:构建去中心化应用的完整指南
  • Spring 框架深度解析:从核心原理到实战应用
  • Hyperledger Fabric官方中文教程-改进笔记(十四)-向通道中添加组织
  • 微服务之间的调用关系如何处理,才能防止循环依赖
  • 用 JavaScript 打造实用 TodoList:从理论到实战的前端实践
  • 【机器学习深度学习】vLLM的核心优化技术详解
  • 嵌入式第三十五天(网络编程)
  • EP4CE40F23I7N Altera FPGA Cyclone IV E
  • Python爬虫实战:构建在线书店数据分析系统
  • element ui v2,用js关闭MessageBox 弹框
  • GPS欺骗式干扰的产生