LeetCode:283.移动零——简单

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

1示例: 2 3输入: [0,1,0,3,12] 4输出: [1,3,12,0,0]

说明:

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

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

代码1:while循环

1class Solution: 2 def moveZeroes(self, nums: List[int]) -> None: 3 """ 4 Do not return anything, modify nums in-place instead. 5 """ 6 count = 0 7 while 0 in nums: 8 count += 1 9 nums.remove(0) 10 while count != 0: 11 nums.append(0) 12 count -= 1

代码2:for循环

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

运行结果:
在这里插入图片描述

点赞
收藏

评论区

加载中...

相关推荐

C 语言代码大全

1两个数组的合并题目描述已知数组a中有m个按升序排列的元素,数组b中有n个按降序排列的元素,编程将a与b中的所有元素按降序存入数组c中。输入输入有两行,第一行首先是一个正整数m,然后是m个整数;第二行首先是一个正整数n,然后是n个整数,m,n均小于等于1000000。输出输出合并后的mn个整数,数据之间用空格隔开。输出占一行。样例输入4

Python数组操作将一维数组变成二维数组

一、问题我们在进行数组操作的时候会遇到将一个低维的数组变成一个高维的素数组二、解决第一种方法基本思路就是将低维数组进行等长的循环,在第一次为零的情况下,需要添加一个\\数组,原因是将它的基本框架搭建起来1records1,2,3,4,5,6,7,8,9,10,11,12

LeetCode 5561. 获取生成数组中的最大值

文章目录1\.题目2\.解题1\.题目给你一个整数n。按下述规则生成一个长度为n1的数组nums:nums00nums11当2<2i<n时,nums2inumsi

GNU C 与 ANSI C的区别

1.零长度数组GNUC允许使用零长度数组,定义变长度对象时比较方便structvar\_data{   intlen;   chardata\0\;};var\_data的大小仅为一个int型,data是常量地址,data\index\是访问其后的内存空间。structvar\_data\smal

LeetCode:(14. 最长公共前缀!!!!!)

题目:14\.最长公共前缀编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串“”。示例1:输入:\“flower”,“flow”,“flight”\输出:“fl”示例2:输入:\“dog”,“racecar”,“car”\输出:“”

Leetcode724:寻找数组的中心索引(java、python3)

寻找数组的中心索引给定一个整数类型的数组nums,请编写一个能够返回数组\\“中心索引”\\的方法。我们是这样定义数组中心索引的:数组中心索引的左侧所有元素相加的和等于右侧所有元素相加的和。如果数组不存在中心索引,那么我们应该返回1。如果数组有多个中心索引,那么我们应该返回最靠近左边的那一个。

LeetCode:283.移动零——简单 - HelloWorld