LeetCode:283.移动零——简单

Stella981
• 阅读 255

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

示例:

输入: [0,1,0,3,12]
输出: [1,3,12,0,0]

说明:

  1. 必须在原数组上操作,不能拷贝额外的数组。
  2. 尽量减少操作次数。

解题思路
list.remove() 移除列表中第一个匹配项,list.append() 在列表末尾添加元素。
遍历列表,每查找到列表中的0元素,就将其移除,并计数,遍历结束后,列表仅剩保持原顺序的非0元素。然后再列表末尾添加相应个数的0元素。

代码1:while循环

class Solution:
    def moveZeroes(self, nums: List[int]) -> None:
        """
        Do not return anything, modify nums in-place instead.
        """
        count = 0
        while 0 in nums:
            count += 1
            nums.remove(0)
        while count != 0:
            nums.append(0)
            count -= 1

代码2:for循环

class Solution:
    def moveZeroes(self, nums: List[int]) -> None:
        """
        Do not return anything, modify nums in-place instead.
        """
        n = nums.count(0)
        for i in range(n):
            nums.remove(0)
            nums.append(0)

运行结果:
LeetCode:283.移动零——简单

点赞
收藏
评论区
推荐文章
先知 先知
3年前
C 语言代码大全
1两个数组的合并题目描述已知数组a中有m个按升序排列的元素,数组b中有n个按降序排列的元素,编程将a与b中的所有元素按降序存入数组c中。输入输入有两行,第一行首先是一个正整数m,然后是m个整数;第二行首先是一个正整数n,然后是n个整数,m,n均小于等于1000000。输出输出合并后的mn个整数,数据之间用空格隔开。输出占一行。样例输入4
Stella981 Stella981
2年前
LeetCode
一目录不折腾的前端,和咸鱼有什么区别目录一目录二题目三解题思路四统计分析五解题套路二题目在一个nm的二维数组中:每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。示例
Stella981 Stella981
2年前
Python数组操作将一维数组变成二维数组
一、问题我们在进行数组操作的时候会遇到将一个低维的数组变成一个高维的素数组二、解决第一种方法基本思路就是将低维数组进行等长的循环,在第一次为零的情况下,需要添加一个\\数组,原因是将它的基本框架搭建起来1records1,2,3,4,5,6,7,8,9,10,11,12
Stella981 Stella981
2年前
Android JNI开发系列(七)访问数组
JNI访问数组JNI中的数组分为基本类型数组和对象数组,它们的处理方式是不一样的,基本类型数组中的所有元素都是JNI的基本数据类型,可以直接访问。而对象数组中的所有元素是一个类的实例或其它数组的引用,和字符串操作一样,不能直接访问Java传递给JNI层的数组,必须选择合适的JNI函数来访问和设置Java层的数组对象。
Stella981 Stella981
2年前
LeetCode 5561. 获取生成数组中的最大值
文章目录1\.题目2\.解题1\.题目给你一个整数n。按下述规则生成一个长度为n1的数组nums:nums00nums11当2<2i<n时,nums2inumsi
Wesley13 Wesley13
2年前
GNU C 与 ANSI C的区别
1.零长度数组GNUC允许使用零长度数组,定义变长度对象时比较方便structvar\_data{   intlen;   chardata\0\;};var\_data的大小仅为一个int型,data是常量地址,data\index\是访问其后的内存空间。structvar\_data\smal
Wesley13 Wesley13
2年前
PHP高性能编程
1.能用PHP数组完成的工作,绝不用文件形式来代替,数组是内存操作,内存操作速度对比文件操作快很多!2.判断一个数值是否在一个数组中,然后决定是否追加数组内容时,不推荐使用in\_array或者array\_key\_exists,因为函数判断都不如isset结构判断来的快!$num0;$resultar
Stella981 Stella981
2年前
LeetCode:(14. 最长公共前缀!!!!!)
题目:14\.最长公共前缀编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串“”。示例1:输入:\“flower”,“flow”,“flight”\输出:“fl”示例2:输入:\“dog”,“racecar”,“car”\输出:“”
Stella981 Stella981
2年前
Leetcode724:寻找数组的中心索引(java、python3)
寻找数组的中心索引给定一个整数类型的数组nums,请编写一个能够返回数组\\“中心索引”\\的方法。我们是这样定义数组中心索引的:数组中心索引的左侧所有元素相加的和等于右侧所有元素相加的和。如果数组不存在中心索引,那么我们应该返回1。如果数组有多个中心索引,那么我们应该返回最靠近左边的那一个。
3A网络 3A网络
1年前
重写数组的方法(改变原数组)
重写数组的方法(改变原数组)下图是我自我学习模拟数组时总结的一些重新数组的方法:本文我们暂不讨论不改变原数组的方法,只谈改变原数组用到的6种方法。改变原数组的方法push()按参数顺序向数组尾部添加元素,返回新数组的长度javascriptvarcolorreverse()将数组倒叙,改变原数组javascriptArray.prototype.