当前位置: 首页> 科技> 名企 > 莱芜交友论坛_逻辑网络设计_汕头网站建设公司_应用商店aso

莱芜交友论坛_逻辑网络设计_汕头网站建设公司_应用商店aso

时间:2025/9/7 10:51:55来源:https://blog.csdn.net/weixin_57544072/article/details/146466200 浏览次数:1次
莱芜交友论坛_逻辑网络设计_汕头网站建设公司_应用商店aso

在这里插入图片描述

你好,我是安然无虞。

文章目录

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

在这里插入图片描述

题目背景

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

移动零

题目链接:移动零

在这里插入图片描述

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

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

代码详解:

C++解法

class Solution {
public:void moveZeroes(vector<int>& nums) {// 先将0全部移除, 再将后面的值赋值为0int 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值全部移除,然后将后面的值全部赋值为0index = self.moveNum(nums, 0)for i in range(index, len(nums)):nums[i] = 0def moveNum(self, nums: List[int], val: int) -> int:"""将数组中值为val的元素全部移除, 并返回slow的下标"""# 定义快慢指针 - 快指针在前面探路slow, fast = 0, 0while fast < len(nums):if nums[fast] != val:nums[slow] = nums[fast]slow += 1fast += 1return slow
遇见安然遇见你,不负代码不负卿。
谢谢老铁的时间,咱们下篇再见~
关键字:莱芜交友论坛_逻辑网络设计_汕头网站建设公司_应用商店aso

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: