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

在这里插入图片描述


📘北尘_:个人主页

🌎个人专栏:《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;
        
    }
};

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

湖科大计网:应用层

一、应用层概述 交互&#xff0c;实现特定问题&#xff01; 二、客户与服务器模型 一、C/S 客户/服务器方式 服务与被服务的关系。 二、P2P方式 对等方式 P2P方式是对等的&#xff0c;没有固定的服务器。 三、DNS域名系统 DNS&#xff08;Domain Name System&#xff09; 一、域…

Linux驱动之设备树

1、 Linux设备树的由来 1、1 为什么会有设备树 在Linux 2.6中&#xff0c;arch/arm/plat-xxx和arch/arm/mach-xxx中充斥着大量的垃圾代码&#xff0c;相当多数的代码只是在描述板级细节&#xff0c;而这些板级细节对于内核来讲&#xff0c;不过是垃圾&#xff0c;如板上的plat…

public private protected区别

北风胡乱刮着&#xff0c;我只想关上窗&#xff0c;煮着茶&#xff0c;在扑哧扑哧的白烟里心安理得地懒着。像郁达夫说得那样&#xff1a;“躲在屋里过活的两三个月的生活&#xff0c;却是一年之中最有劲的一段蛰居异境。”不管门外如何变幻莫测&#xff0c;围炉煮茶&#xff0…

深入解析Windows操作系统——概念和工具

文章目录 Windows操作系统的版本Windows NT和Windows 95基础概念和术语内核调试用户模式调试 Windows操作系统的版本 Windows NT和Windows 95 Windows NT和Windows 95之间的一些结构性差异&#xff0c;以及Windows NT优于Windows 95及其后续版本的一些方面&#xff1a; Wind…

(二)pytest自动化测试框架之添加测试用例步骤(@allure.step())

前言 在编写自动化测试用例的时候经常会遇到需要编写流程性测试用例的场景&#xff0c;一般流程性的测试用例的测试步骤比较多&#xff0c;我们在测试用例中添加详细的步骤会提高测试用例的可阅读性。 allure提供的装饰器allure.step()是allure测试报告框架非常有用的功能&am…

前端环境变量释义import.meta.env.xxx

视频教程 彻底搞懂前端环境变量使用和原理&#xff0c;超清楚_哔哩哔哩_bilibili 添加命令行参数 --modexxxxx 新建.env.xxxx文件,其中.env文件会在所有环境下生效 以VITE_开头&#xff0c;字符串无需加双引号 使用import.meta.env.VITE_xxxxx进行调用

WinEdt 11.1编辑器的尝鲜体验

WinEdt 11.1编辑器的尝鲜体验 2023年5月19日&#xff0c;WinEdt 11.1版本发布了&#xff0c;相比WinEdt 10.3, 最新版更加漂亮&#xff0c;更加友好&#xff0c;更加好用了&#xff01; 最大的改变是WinEdt 11.1 有了自带的WinEdtPDF阅读器&#xff0c;所以不再需要下载第三方…

同星智能完成A+轮超亿元融资,国投招商领投

2023年10月&#xff0c;上海同星智能科技有限公司成功完成超亿元A轮融资。本轮融资由国投招商管理的先进制造产业投资基金二期领投&#xff0c;老股东丰年资本超额跟投。 本轮融资将用于产品研发和全球化市场拓展。 同星智能成立于2017年&#xff0c;一直专注于研发国产自主可控…

java算法学习索引之数组矩阵问题

一 将正方形矩阵顺时针转动90 给定一个NN的矩阵matrix&#xff0c;把这个矩阵调整成顺时针转动90后的形式。 顺时针转动90后为&#xff1a; 【要求】额外空间复杂度为O&#xff08;1&#xff09;。 public void rotate(int[][] matrix) {int tR 0; // 左上角行坐标int tC 0;…

NUCLEO-L552ZE SWD外部接口定义

如果使用ST-LINK调试器对外部MCU编程需要将CN4上的跳线拔下。

MAC地址注册管理最佳实践:安全性、可用性和灵活性

MAC地址注册管理是在网络环境中确保设备身份验证和访问控制的重要步骤。本文将介绍MAC地址注册管理的最佳实践&#xff0c;旨在提高安全性、可用性和灵活性&#xff0c;以满足现代网络的需求。 随着网络规模和复杂性的不断增加&#xff0c;管理和维护设备身份变得至关重要。MAC…

MindSpore基础教程:使用 MindCV和 Gradio 创建一个图像分类应用

MindSpore基础教程&#xff1a;使用 MindCV和 Gradio 创建一个图像分类应用 官方文档教程使用已经弃用的MindVision模块&#xff0c;本文是对官方文档的更新 在这篇博客中&#xff0c;我们将探索如何使用 MindSpore 框架和 Gradio 库来创建一个基于深度学习的图像分类应用。我…

京东优惠券查询API接口接入方案,item_search_coupon - 京东优惠券查询接口演示

要接入京东优惠券查询API接口&#xff08;item_search_coupon&#xff09;&#xff0c;您可以按照以下步骤进行操作&#xff1a; 注册并获取API密钥&#xff1a;首先&#xff0c;您需要在京东开放平台上注册并获取API密钥。这将为您提供唯一的标识符和密钥&#xff0c;用于访问…

博主都在用的网站,一键制作电子杂志

​随着互联网的发展&#xff0c;越来越多的人开始使用电子杂志来展示自己的作品或宣传自己的品牌。而制作电子杂志的工具也越来越多&#xff0c;其中一些工具非常受欢迎&#xff0c;被许多博主使用。今天&#xff0c;我们就来介绍一款博主都在用的网站&#xff0c;它可以帮助你…

【python】Python生成GIF动图,多张图片转动态图,pillow

pip install pillow 示例代码&#xff1a; from PIL import Image, ImageSequence# 图片文件名列表 image_files [car.png, detected_map.png, base64_image_out.png]# 打开图片 images [Image.open(filename) for filename in image_files]# 设置输出 GIF 文件名 output_g…

svn文件不显示红色感叹号

如下图所示&#xff0c;受svn版本控制的文件不显示下图中红色感叹号和绿色对号时&#xff0c; 可以试着如下操作 空白处单击右键&#xff0c;具体操作如下图

CF 1894A 学习笔记 思维 题意理解分析

原题 A. Secret Sport time limit per test 3 seconds memory limit per test 512 megabytes input standard input output standard output Lets consider a game in which two players, A and B, participate. This game is characterized by two positive integer…

Spring源码-5.aop代理

&#x1f44f;作者简介&#xff1a;大家好&#xff0c;我是爱吃芝士的土豆倪&#xff0c;24届校招生Java选手&#xff0c;很高兴认识大家&#x1f4d5;系列专栏&#xff1a;Spring源码、JUC源码&#x1f525;如果感觉博主的文章还不错的话&#xff0c;请&#x1f44d;三连支持&…

4.2、Linux进程(1)

个人主页&#xff1a;Lei宝啊 愿所有美好如期而遇 目录 基本概念 描述进程-PCB task_struct-PCB的一种 task_struct内容分类 查看进程 通过系统调用获取进程标识符 前言 进入进程前&#xff0c;我建议读一读这两篇文章&#xff0c;他们都是进程的前导知识。 操作系统…

Joern安装与使用

环境准备 Joern需要在Linux环境中运行&#xff0c;所以在Windows系统中需要借助WSL或虚拟机安装。 JDK安装 Joern的运行需要JAVA环境的支持&#xff0c;本次采用的是JDK17&#xff0c;其他版本建议看一下Joern官方文档。 apt install openjdk-17-jre-headless 配置JAVA环境变…