LeetCode--283--移动0
2024-10-18 12:41:45
问题描述:
给定一个数组 nums
,编写一个函数将所有 0
移动到数组的末尾,同时保持非零元素的相对顺序。
示例:
输入:[0,1,0,3,12]
输出:[1,3,12,0,0]
说明:
- 必须在原数组上操作,不能拷贝额外的数组。
- 尽量减少操作次数。
方法1:检测到为0纪录0的个数,不为0时进行赋值运算nums[i - k] = nums[i]
最后将检测到的0补到nums的最后
class Solution(object):
def moveZeroes(self, nums):
"""
:type nums: List[int]
:rtype: void Do not return anything, modify nums in-place instead.
"""
if len(nums) == 2:
if nums[0] == 0:
nums[0],nums[1] = nums[1],nums[0]
return
else:
return
k = 0
for i in range(len(nums)):
if nums[i] == 0:
k += 1
elif nums[i] != 0 :
nums[i - k] = nums[i]
for j in range(len(nums) - k,len(nums)):
nums[j] = 0
方法2:每次将元素等于0的位置变成[]。
class Solution(object):
def moveZeroes(self, nums):
"""
:type nums: List[int]
:rtype: void Do not return anything, modify nums in-place instead.
"""
i = 0
length = len(nums)
while i < len(nums):
while nums != [] and nums[i] == 0:
nums[i:i+1] = []
if i == len(nums):
break
i += 1
nums += (length - len(nums))*[0]
将方法1改进:
class Solution(object):
def moveZeroes(self, nums):
"""
:type nums: List[int]
:rtype: void Do not return anything, modify nums in-place instead.
"""
length = len(nums)
i = 0
n = 0
while i + n < length:
if nums[i] == 0:
n += 1
del nums[i]
else:
i += 1
nums += [0]*n
2018-09-23 09:07:49
最新文章
- 开放式管理基础结构 OMI
- jQuery操作Dom、jQuery事件机制、jQuery补充部分
- Servlet过滤器,Servlet过滤器创建和配置
- warning C4305: “=”: 从“int”到“unsigned char”截断解决方法[zz]
- nginx支持flv MP4 扩展nginx_mod_h264_streaming,nginx-rtmp-module-master,yamdi
- 安装Golang 1.6及开发环境
- HTTP协议和WEB应用
- 解决iOS中tabBarItem图片默认颜色的问题(指定代码渲染模式为以原样模式的方式显示出来)
- bat脚本-set(setlocal enabledelayedexpansion) 学习
- 剖析项目多个logback配置(下)
- 如何对tcp流认证并加密
- C语言缓冲区
- LeetCode算法题-Arranging Coins(Java实现)
- (转)EOS中账户、钱包和密钥的关系
- oracle开机自启,开机自动关闭防火墙,开机监听自启
- P2651 添加括号III
- Docker化高可用redis集群
- 10 jmeter之动态关联
- AndroidPn推送测试
- python 随机选择字符串中的一个字符
热门文章
- Git Add,Git别名等
- Eclipse中在xml文件中,ctrl+左键的快捷键,点击class定位,不生效
- topcoder srm 710 div1 -23
- Python3基础 dict clear 清空一个字典
- 【POJ1509】Glass Beads
- (转)tomcat架构&;session共享
- How to Install Apache Tomcat 8.5 on CentOS 7.3
- LuoguP2398 GCD SUM
- SalGAN: Visual saliency prediction with generative adversarial networks
- POJ 3126 Prime Path(素数路径)