欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 人文社科 > 生活经验 >内容正文

生活经验

LeetCode简单题之复写零

发布时间:2023/11/28 生活经验 44 豆豆
生活随笔 收集整理的这篇文章主要介绍了 LeetCode简单题之复写零 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

题目

给你一个长度固定的整数数组 arr,请你将该数组中出现的每个零都复写一遍,并将其余的元素向右平移。
注意:请不要在超过该数组长度的位置写入元素。
要求:请对输入的数组 就地 进行上述修改,不要从函数返回任何东西。
示例 1:
输入:[1,0,2,3,0,4,5,0]
输出:null
解释:调用函数后,输入的数组将被修改为:[1,0,0,2,3,0,0,4]
示例 2:
输入:[1,2,3]
输出:null
解释:调用函数后,输入的数组将被修改为:[1,2,3]
提示:
1 <= arr.length <= 10000
0 <= arr[i] <= 9
来源:力扣(LeetCode)

解题思路

  题目的意思很简单就是在遍历数组的时候如果遇到0,就在它后面添加一个0,按照示例1的模板,不难发现原数组的长度在添加完0后不变,多出的部分被删掉了,所以就是添加几个0就从末端删除几个元素。

class Solution:def duplicateZeros(self, arr: List[int]) -> None:"""Do not return anything, modify arr in-place instead."""temp=[]count=-1  #定位不同的0所在的位置for i in range(len(arr)): if arr[i]==0:count+=1if i+count>len(arr)-1:  #如果插入的0已经在数组外面则中断breaktemp.append(i+count)for i in temp:  #按照算好的位置插入0,然后删除末尾元素arr.insert(i,0)arr.pop()

总结

以上是生活随笔为你收集整理的LeetCode简单题之复写零的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。