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

LeetCode热题100精讲——Top4:移动零【双指针】

在这里插入图片描述

你好,我是安然无虞。

文章目录

    • 题目背景
    • 移动零
      • C++解法
      • Python解法

在这里插入图片描述

题目背景

如果大家对于 双指针 的概念并不熟悉, 可以先看我之前为此专门写的算法详解:
蓝桥杯算法竞赛系列第七章——六道力扣经典带你刷爆双指针

移动零

题目链接:移动零

在这里插入图片描述

解题思路:本题是个简单题

先移除所有 0,然后把最后的元素都置为 0,就相当于移动 0 的效果。

代码详解:

C++解法

class Solution {
public:
    void moveZeroes(vector<int>& nums) 
    {
        // 先将0全部移除, 再将后面的值赋值为0
        int index = moveNum(nums, 0);

        for(int i = index; i < nums.size(); i++)
            nums[i] = 0;    
    }

    // 将值为val的元素全部移除
    int moveNum(vector<int>& nums, int val)
    {
        // 定义快慢指针 - fast指针在前面探路
        int slow = 0, fast = 0;

        while(fast < nums.size())
        {
            if(nums[fast] != val)
            {
                nums[slow] = nums[fast];
                slow++;
            }
            fast++;
        }

        return slow;
    }
};

Python解法

class Solution:
    def moveZeroes(self, nums: List[int]) -> None:
        # 将0值全部移除,然后将后面的值全部赋值为0
        index = self.moveNum(nums, 0)

        for i in range(index, len(nums)):
            nums[i] = 0

    def moveNum(self, nums: List[int], val: int) -> int:
        """
        将数组中值为val的元素全部移除, 并返回slow的下标
        """
        # 定义快慢指针 - 快指针在前面探路
        slow, fast = 0, 0
        
        while fast < len(nums):
            if nums[fast] != val:
                nums[slow] = nums[fast]
                slow += 1
            fast += 1

        return slow
遇见安然遇见你,不负代码不负卿。
谢谢老铁的时间,咱们下篇再见~

相关文章:

  • SpringBoot底层原理
  • AndroidStudio 下载
  • 大疆上云api直播功能如何实现
  • Linux文件目录管理指令详解(上篇)
  • STM32学习笔记之存储器映射(原理篇)
  • Langchain 历史消息和会话管理
  • 简单一周日期展示及选择切换
  • 定时任务框架选型指南:Quartz、Elastic-Job 与 XXL-JOB 深度对比与场景实践
  • vue对文件进行加密,后台解密后保存
  • EFK日志分析
  • 操作系统 :Linux基础开发工具
  • LLM之Agent(十四)| 字节开源ComputerUse纯视觉驱动GUI 智能体模型 UI-TARS
  • file io(I)
  • 数据类设计_图片类设计之8_自由图形类设计_(前端架构)
  • 云资源开发学习应用场景指南,场景 1 云上编程实践平台
  • 【Linux网络(五)】传输层协议
  • 说说MyBatis一、二级缓存和Spring一二级缓存有什么关系?
  • Vue Router动态改变路由参数的两种方法
  • 装饰器模式介绍和典型实现
  • k8s常用命令
  • 做百度关键词网站/中国没有限制的搜索引擎
  • 培训学校网站建设要点/有产品怎么找销售渠道
  • 如何做百度推广网站/搜索网站排行
  • 岳阳市住房和城乡建设路网站/关键词代发排名首页
  • 网站建设动态静态/最新发布的最新
  • 复制别人网站的源码做网站模板/外链推广网站