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

news2024/11/16 1:15:27

在这里插入图片描述


📘北尘_:个人主页

🌎个人专栏:《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.coloradmin.cn/o/1234584.html

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

相关文章

Spring-IOC-@Import的用法

1、Car.java package com.atguigu.ioc; import lombok.Data; Data public class Car {private String cname; }2、 MySpringConfiguration2.java package com.atguigu.ioc; import org.springframework.context.annotation.Bean; import org.springframework.context.annotatio…

VBA技术资料MF85:将工作簿批量另存为PDF文件

我给VBA的定义&#xff1a;VBA是个人小型自动化处理的有效工具。利用好了&#xff0c;可以大大提高自己的工作效率&#xff0c;而且可以提高数据的准确度。我的教程一共九套&#xff0c;分为初级、中级、高级三大部分。是对VBA的系统讲解&#xff0c;从简单的入门&#xff0c;到…

香港科技大学广州|机器人与自主系统学域博士招生宣讲会—同济大学专场!!!(暨全额奖学金政策)

在机器人和自主系统领域实现全球卓越—机器人与自主系统学域 硬核科研实验室&#xff0c;浓厚创新产学研氛围&#xff01; 教授亲临现场&#xff0c;面对面答疑解惑助攻申请&#xff01; 一经录取&#xff0c;享全额奖学金1.5万/月&#xff01; &#x1f559;时间&#xff1a;…

mac 和 windows 相互传输文件【共享文件夹】

文章目录 前言创建共享文件夹mac 连接共享文件夹 前言 温馨提示&#xff1a;mac 电脑和 windows 电脑必须处于同一局域网下 本文根据创建共享文件夹的方式实现文件互相传输&#xff0c;所以两台电脑必须处于同一网络 windows 创建共享文件夹&#xff0c;mac 电脑通过 windows…

Mrakdown Nice:格式

标题 缩进 删除线 斜体 加粗

EANet:用于医学图像分割的迭代边缘注意力网络

EANet: Iterative edge attention network for medical image segmentation EANet&#xff1a;用于医学图像分割的迭代边缘注意力网络背景贡献实验方法Dynamic scale-aware context module&#xff08;动态规模感知上下文模块&#xff09;Edge attention preservation module&a…

【日常总结】Swagger-ui 导入 showdoc (优雅升级Swagger 2 升至 3.0)

一、场景 环境&#xff1a; 二、存在问题 三、解决方案 四、实战 - Swagger 2 升至 3.0 &#xff08;Open API 3.0&#xff09; Stage 1&#xff1a;引入Maven依赖 Stage 2&#xff1a;Swagger 配置类 Stage 3&#xff1a;访问 Swagger 3.0 Stage 4&#xff1a;获取 js…

pycharm 控制台中文乱码处理

今天使用pycharm&#xff0c;发现控制台输出又中文乱码了&#xff0c;看网上很多资料说把编码改为UTF-8&#xff0c;设置为并未生效&#xff0c;特此在此记录下本地设置。 1. 修改文件编码&#xff1a;Setting -> Editor ->File Encodings,修改配置如下&#xff1a; 2. …

Windows10环境下Python解析pacp文件

Windows10环境下Python解析pacp文件 一、背景 在Python中,你可以使用scapy库来解析pcap文件。scapy是一个功能强大的网络分析工具,可以用于解析、构建和发送网络数据包。 二、环境安装 命令在终端中安装: pip install scapy由于我使用的Pycharm,所以我就直接在Python Int…

释放搜索潜力:基于Docker快速搭建ES语义检索系统(快速版),让信息尽在掌握

搜索推荐系统专栏简介:搜索推荐全流程讲解(召回粗排精排重排混排)、系统架构、常见问题、算法项目实战总结、技术细节以及项目实战(含码源) 专栏详细介绍:搜索推荐系统专栏简介:搜索推荐全流程讲解(召回粗排精排重排混排)、系统架构、常见问题、算法项目实战总结、技术…

聚焦操作系统迁移痛点,麒麟信安受邀参加 openEuler Meetup苏州站分享迁移实践干货

随着数字化转型持续深入&#xff0c;操作系统正在向支持多样性计算、支持全场景等方向不断发展。日前&#xff0c;由开放原子开源基金会指导&#xff0c;openEuler社区、移动云联合主办的迁移主题Meetup在苏州举办&#xff0c;邀请来自不同领域的技术专家分享系统迁移实践案例。…

QT打包圆心识别

圆心点识别QT界面封装 最近在练习QT相关内容&#xff0c;找了个相关功能集成了下&#xff0c;主要是为了熟悉各个组件&#xff0c;功能主要是进行圆心识别。 主要涉及的QT功能点&#xff1a; 1.日志可视化 2.按钮及各类参数添加组件 3.水印添加及图片可视化 4.许可添加 5.主线…

URDF文件

URDF&#xff08;Universal Robot Description Format&#xff09;&#xff1a;通用机器人描述格式&#xff0c;包含的内容有&#xff1a;连杆、关节&#xff0c;运动学和动力学参数、可视化模型、碰撞检测模型等。 父子关系树&#xff1a;连杆link1 --> 关节joint1 -->…

数据类型扩展02

1、字符串拓展 所有的字符本质还是数字。 char c1 a;char c2 中;System.out.println("c1:"c1);System.out.println("c1转换:"(int)c1);System.out.println("c2:"c2);System.out.println("c2转换:"(int)c2); 执行结果 c1:a c1转换:…

【SpringBoot】通过profiles设置环境

效果图&#xff0c;通过profiles设置环境 在父级pom.xml中添加配置 <profiles><profile><id>dev</id><properties><application.environment>dev</application.environment></properties><activation><activeByDefau…

Javaweb实现数据库简单的增删改查

JDBC介绍 JDBC &#xff08; Java Data Base Connectivity &#xff09; 是一 种 Java 访问 数据库 的技术&#xff0c;它提供 执行 SQL 语句的 Java API &#xff0c;由 一组 类 和接口组成&#xff0c;可以为 不同的 数据库提供统一访问 JDBC工作原理 JDBC应用编程 1、准备…

SocketIo的使用和基于SocketIO的聊天室

Socket.IO 是一个库&#xff0c;可以在客户端和服务器之间实现 低延迟, 双向 和 基于事件的 通信。 一、Socket.IO的特点 以下是 Socket.IO 在普通 WebSockets 上提供的功能&#xff1a; 1、HTTP 长轮询回退 如果无法建立 WebSocket 连接&#xff0c;连接将回退到 HTTP 长轮…

随笔-事儿就这么个事儿

好久没写了&#xff0c;小A要催更&#xff0c;还答应让我写一下他的经历&#xff0c;这还有啥说的&#xff0c;开整。 1、升级 前段时间登录公司的办公系统处理一个事务申请&#xff0c;发现有个粗体标红的通知&#xff0c;是关于今年的晋升名单公示。进去看了一眼&#xff0…

姓氏情侣家庭亲子谐音顽梗头像分销流量主微信抖音小程序开发

姓氏情侣家庭亲子谐音顽梗头像分销流量主微信抖音小程序开发 姓氏情侣头像&#xff1a;提供各种姓氏的情侣头像模板&#xff0c;用户可根据自己的姓氏选择合适的头像进行定制。 家庭头像&#xff1a;为家庭成员提供多种形式的头像模板&#xff0c;让用户可以选择合适的家庭头像…

MAX/MSP SDK学习05:A_GIMME方法

今天终于将A_GIMME方法部分的描述看懂了&#xff0c;上周因为太赶时间加上这文档很抽象一直没看懂。也就那么一回事&#xff0c;记录一下。 A_GIMME方法用于接收多个参数&#xff1a; #include "ext.h" // standard Max include, always required #include "…