算法随笔_31:移动零

上一篇:算法随笔_30: 去除重复字母-CSDN博客

=====

题目描述如下:

给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。

请注意 ,必须在不复制数组的情况下原地对数组进行操作。

示例 1:

复制代码
输入: nums = [0,1,0,3,12]
输出: [1,3,12,0,0]

=====

算法思路:

题目要求原地对数组进行操作。我们可以设两个下标指针p1,p2,p1=0,p2=0。

然后从左往右枚举数组,先不断移动p2,如果p2处不为0,我们把p1的元素和p2所指元素交换,然后继续移动p1。如果p2处为0,我们继续移动p2。

以此类推,直到p2到达数组末尾。此时的数组已经符合题目要求。

复制代码
class Solution(object):
    def moveZeroes(self, nums):
        
        p1=0
        p2=0
        nums_len=len(nums)
        while p2<nums_len:
            if nums[p2]!=0:
                nums[p1],nums[p2]=nums[p2],nums[p1]
                p1+=1
            
            p2+=1

此算法的时间复杂度为O(n) 。

相关推荐
Geoking.19 小时前
NumPy zeros() 函数详解
python·numpy
Full Stack Developme19 小时前
java.text 包详解
java·开发语言·python
丁浩66620 小时前
Python机器学习---2.算法:逻辑回归
python·算法·机器学习
best_virtuoso20 小时前
PostgreSQL 常见数组操作函数语法、功能
java·数据结构·postgresql
B站_计算机毕业设计之家20 小时前
计算机毕业设计:Python农业数据可视化分析系统 气象数据 农业生产 粮食数据 播种数据 爬虫 Django框架 天气数据 降水量(源码+文档)✅
大数据·爬虫·python·机器学习·信息可视化·课程设计·农业
Q_Q51100828520 小时前
python+uniapp基于微信小程序的旅游信息系统
spring boot·python·微信小程序·django·flask·uni-app·node.js
伏小白白白21 小时前
【论文精度-2】求解车辆路径问题的神经组合优化算法:综合展望(Yubin Xiao,2025)
人工智能·算法·机器学习
鄃鳕21 小时前
python迭代器解包【python】
开发语言·python
无敌最俊朗@21 小时前
数组-力扣hot56-合并区间
数据结构·算法·leetcode
懷淰メ21 小时前
python3GUI--模仿百度网盘的本地文件管理器 By:PyQt5(详细分享)
开发语言·python·pyqt·文件管理·百度云·百度网盘·ui设计