LeetCode:283.移动零——简单

Stella981
• 阅读 114

题目:
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.移动零——简单

点赞
收藏
评论区
推荐文章
先知 先知
1年前
C 语言代码大全
1 两个数组的合并 题目描述 已知数组a中有m个按升序排列的元素,数组b中有n个按降序排列的元素,编程将a与b中的所有元素按降序存入数组c中。 输入 输入有两行,第一行首先是一个正整数m,然后是m个整数;第二行首先是一个正整数n,然后是n个整数,m, n均小于等于1000000。 输出 输出合并后的mn个整数,数据之间用空格隔开。输出占一行。 样例输入 4
孤心独饮 孤心独饮
1年前
从零开始刷力扣(一)——485:最大连续1的个数
分类:数组的遍历 题目描述: 给定一个二进制数组, 计算其中最大连续1的个数。 示例1: 输入: 1,1,0,1,1,1 输出: 3 解释: 开头的两位和最后的三位都是连续1,所以最大连续1的个数是 3. 思路 初始化count和maxCount,然后遍历数组,遇见1则count,并且更新与maxCount比较,若比maxCount更大,则更新m
Stella981 Stella981
1年前
LeetCode
一 目录 ---- **不折腾的前端,和咸鱼有什么区别** 目录 一 目录 二 题目 三 解题思路 四 统计分析 五 解题套路 二 题目 ---- 在一个 n * m 的二维数组中:每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。示例
Stella981 Stella981
1年前
Python数组操作将一维数组变成二维数组
**一、问题** 我们在进行数组操作的时候会遇到将一个低维的数组变成一个高维的素数组 **二、解决** 第一种方法 基本思路就是将低维数组进行等长的循环,在第一次为零的情况下,需要添加一个\[\]数组,原因是将它的基本框架搭建起来 1 records = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12
Stella981 Stella981
1年前
HashMap,LinkedHashMap,TreeMap的有序性
HashMap 实际上是一个链表的数组。HashMap 的一个功能缺点是它的无序性,被存入到 HashMap 中的元素,在遍历 HashMap 时,其输出是无序的。如果希望元素保持输入的顺序,可以使用 LinkedHashMap 替代。 LinkedHashMap继承自HashMap,具有高效性,同时在HashMap的基础上,又在内部增加了一个链表,用以存
Stella981 Stella981
1年前
Android JNI开发系列(七)访问数组
#### JNI访问数组 JNI 中的数组分为基本类型数组和对象数组,它们的处理方式是不一样的,基本类型数组中的所有元素都是 JNI 的基本数据类型,可以直接访问。而对象数组中的所有元素是一个类的实例或其它数组的引用,和字符串操作一样,不能直接访问 Java 传递给 JNI 层的数组,必须选择合适的 JNI 函数来访问和设置 Java 层的数组对象。 #
Stella981 Stella981
1年前
LeetCode 5561. 获取生成数组中的最大值
### 文章目录 * * 1\. 题目 * 2\. 解题 1\. 题目 ------ 给你一个整数 n 。按下述规则生成一个长度为 n + 1 的数组 nums : * `nums[0] = 0` * `nums[1] = 1` * `当 2 <= 2 * i <= n 时,nums[2 * i] = nums[i]`
Stella981 Stella981
1年前
JavaScript基础知识
题目: 1.找出数字数组中最大的元素(使用Math.max函数) 2.转化一个数字数组为function数组(每个function都弹出相应的数字) 3.给object数组进行排序(排序条件是每个元素对象的属性个数) 4.利用JavaScript打印出Fibonacci数(不使用全局变量) 5.实现如下语法的功能:var a = (5).plus(
Stella981 Stella981
1年前
LeetCode
零钱兑换 给定不同面额的硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回  \-1 。 示例 1: 输入: coins = \[1, 2, 5\], amount = 11 输出: 3 解释: 11 = 5 + 5 + 1 示例 2: 输入: coi
Wesley13 Wesley13
1年前
GNU C 与 ANSI C的区别
1.零长度数组 GNU C允许使用零长度数组,定义变长度对象时比较方便 struct var\_data {     int len;     char data\[0\]; }; var\_data的大小仅为一个int型,data是常量地址,data\[index\]是访问其后的内存空间。 struct var\_data \*s = mal
3A网络 3A网络
2个月前
重写数组的方法(改变原数组)
重写数组的方法(改变原数组)下图是我自我学习模拟数组时总结的一些重新数组的方法:本文我们暂不讨论不改变原数组的方法,只谈改变原数组用到的 6 种方法。 改变原数组的方法push()按参数顺序向数组尾部添加元素,返回新数组的长度javascriptvar color reverse()将数组倒叙,改变原数组javascriptArray.prototype.