双指针1:283. 移动零

news/2025/2/25 9:16:14

双指针的基本思想:

首先根据异地操作确定指针的基本步骤,再将异地操作优化成原地操作的双指针解法

链接:283. 移动零 - 力扣(LeetCode)

题解:

异地操作:fast指针指向原数组,slow指针指向新数组,fast遍历原数组,如果fast遇到0则不处理,如果fast遇到非0则slow指向的新数组位置拷贝fast指向的元素并且slow++,直到fast遍历完原数组。新数组剩下的位置填0。

优化为双指针本地操作:fast和slow指针都指向原数组,遵循异地操作中的步骤,方案可行。

class Solution {
public:
    void moveZeroes(vector<int>& nums) {
        int fast=0,slow=0;
        for(;fast<nums.size();fast++)
        {
            if(nums[fast]!=0)
            {
                nums[slow]=nums[fast];
                slow++;
            }
            else
            {
                //不做处理
            }
        }
        while(slow<nums.size()) nums[slow++]=0;
    }
};

http://www.niftyadmin.cn/n/5865307.html

相关文章

tableau之人口金字塔、漏斗图、箱线图

一、人口金字塔 人口金字塔在本质上就是成对的条形图 人口金字塔是一种特殊的旋风图 1、数据处理 对异常数据进行处理 2、创建人口金字塔图 将年龄进行分桶 将男女人数数据隔离开 分别绘制两个条形图 双击男性条形图底部&#xff0c;将数据进行翻转&#xff08;倒序&a…

本周行情——250222

本周A股行情展望与策略 结合近期盘面特征及市场主线演化&#xff0c;本周A股预计延续结构性分化行情&#xff0c;科技成长与政策催化板块仍是资金主战场&#xff0c;但需警惕高标股分歧带来的波动。以下是具体分析与策略建议&#xff1a; 1. 行情核心驱动因素 主线延续性&…

JavaScript系列(86)--现代构建工具详解

JavaScript 现代构建工具详解 &#x1f528; 现代前端开发离不开构建工具&#xff0c;它们帮助我们处理模块打包、代码转换、资源优化等任务。让我们深入了解主流的构建工具及其应用。 构建工具概述 &#x1f31f; &#x1f4a1; 小知识&#xff1a;构建工具主要解决代码转换…

C语言堆学习笔记

1. 堆的定义 堆&#xff08;Heap&#xff09;是一种特殊的树形数据结构&#xff0c;它满足以下性质&#xff1a; 堆是一个完全二叉树。堆中每个节点的值都大于或等于&#xff08;最大堆&#xff09;或小于或等于&#xff08;最小堆&#xff09;其子节点的值。 1.1 最大堆 在…

SpringBoot之自定义简单的注解和AOP

1.引入依赖 <!-- AOP依赖--> <dependency><groupId>org.aspectj</groupId><artifactId>aspectjweaver</artifactId><version>1.9.8</version> </dependency>2.自定义一个注解 package com.example.springbootdemo3.an…

鸿蒙ArkTS页面如何与H5页面交互?

鸿蒙页面如何与H5页面交互&#xff1f; 先看效果前言通信功能介绍Web组件使用问题 Harmony OS NEXT版本&#xff08;接口及解决方案兼容API12版本或以上版本) 先看效果 功能介绍 点击Click Me按钮可以接收展示鸿蒙传递给html的内容点击霓虹灯按钮可以同步更新底部鸿蒙页面的按…

Flutter系列教程之(2)——Dart语言快速入门

目录 1.变量与类型 1.1 num类型 1.2 String类型 1.3 Object与Dynamic 1.4 类型判断/转换 1.5 变量和常量 2.方法/函数 3.类、接口、抽象类 3.1 类 3.2 接口 4.集合 4.1 List 4.2 Set 4.3 Map 5.总结 Dart语言的语法和Kotlin、Java有类似之处&#xff0c;这里就通…

ADCS-ESC1漏洞环境构造与利用

原理 ESC1是ADCS中的一个漏洞&#xff0c;利用该漏洞可实现权限提升攻击。在 ESC1 漏洞利用中&#xff0c;攻击者通过一系列操作获取包含域管身份信息的证书后&#xff0c;利用 Rubeus.exe 工具&#xff0c;使用该证书获取 TGT 票据。一旦成功获取 TGT 票据&#xff0c;攻击者…