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

经典双指针算法试题(一)

在这里插入图片描述


📘北尘_:个人主页

🌎个人专栏:《Linux操作系统》《经典算法试题 》《C++》 《数据结构与算法》

☀️走在路上,不忘来时的初心

文章目录

  • 一、移动零
    • 1、题目讲解
    • 2、讲解算法原理
    • 3、代码实现
  • 二、复写零
    • 1、题目讲解
    • 2、讲解算法原理
    • 3、代码实现
  • 三、盛水最多的容器
    • 1、题目讲解
    • 2、讲解算法原理
    • 3、代码实现
  • 四、快乐数
    • 1、题目讲解
    • 2、讲解算法原理
    • 3、代码实现


一、移动零

1、题目讲解

在这里插入图片描述

2、讲解算法原理

在这里插入图片描述

3、代码实现

class Solution {
public:void moveZeroes(vector<int>& nums) {for(int cur=0,dest=0;cur<nums.size();cur++){if(nums[cur]){swap(nums[cur],nums[dest++]);}}}
};

二、复写零

1、题目讲解

在这里插入图片描述

2、讲解算法原理

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

3、代码实现

class Solution {
public:void duplicateZeros(vector<int>& arr) {int cur=0,dest=-1,n=arr.size();while(cur<n){if(arr[cur]) dest++;else dest+=2;if(dest>=n-1) break;cur++;}if(dest==n){arr[n-1]=0;cur--;dest-=2;}while(cur>=0){if(arr[cur]) arr[dest--]=arr[cur--];else {arr[dest--]=0;arr[dest--]=0;cur--;}  }  }
};

三、盛水最多的容器

1、题目讲解

在这里插入图片描述
在这里插入图片描述

2、讲解算法原理

在这里插入图片描述

3、代码实现

class Solution {
public:int maxArea(vector<int>& height) {int max=0,begin=0,end=height.size()-1;while(begin<end){if(height[begin]>height[end]){int v1=height[end]*(end-begin);if(v1>max)max=v1;--end;}else{int v2=height[begin]*(end-begin);if(v2>max)max=v2;++begin;}}return max;}
};

四、快乐数

1、题目讲解

在这里插入图片描述

2、讲解算法原理

在这里插入图片描述

3、代码实现

class Solution {
public:int bigsum(int n ){int sum=0;while(n){int ret=n%10;sum+=ret*ret;n/=10;}return sum;}bool isHappy(int n) {int slow=n,fast=bigsum(n);while(fast!=slow){fast=bigsum(bigsum(fast));slow=bigsum(slow);}return slow==1;}
};

http://www.lryc.cn/news/238317.html

相关文章:

  • MATLAB | 绘图复刻(十三) | 带NaN图例的地图绘制
  • netty整合websocket(完美教程)
  • 选择PC示波器的10种理由!
  • 【pytorch深度学习 应用篇02】训练中loss图的解读,训练中的问题与经验汇总
  • uniapp 微信小程序如何实现多个item列表的分享
  • .NET 8 正式 GA 遥遥领先
  • 2216. 美化数组的最少删除数 --力扣 --JAVA
  • DDD 领域驱动设计
  • 转型做视频了,博客就是稿子,继续坚持写博客,同时发布视频,能写博客说明思路清晰了,能再讲明白,理解就更透彻了,紧跟上时代发展。
  • 小众市场:探索跨境电商中的利基领域
  • C++中的mutable关键字
  • java: 无效的目标发行版: 17 问题解决
  • C#的LINQ查询
  • Python不会调试不够丝滑?那事你不会logging---剖析!
  • OpenAI的Whisper蒸馏:蒸馏后的Distil-Whisper速度提升6倍
  • Ubuntu18.04安装LeGO-LOAM保姆级教程
  • git修改commit历史提交时间、作者
  • 【C++历练之路】list的重要接口||底层逻辑的三个封装以及模拟实现
  • Kubeadm部署Kubernetes Containerd集群
  • OpenCV入门9——目标识别(车辆统计)
  • 2023前端大厂高频面试题之JavaScript篇(5)
  • 物联网网关在工业行业的应用案例
  • 5、基础入门——资产架构端口应用WAF站库分离负载均衡
  • golang学习笔记——接口和继承比较1
  • chatGPT快捷键(最新版本)
  • 77基于matlab的蚁群优化路径算法,二维路径和三维路径优化
  • PyTorch中并行训练的几种方式
  • 基于非链式(数组)结点结构的二叉树的层序输入创建以及遍历
  • 云计算:开辟数字时代的无限可能
  • Django+Vue项目创建 跑通