0
点赞
收藏
分享

微信扫一扫

python 练习题-复写零(LeetCode 1089)

 

1 题目:
2
3 给你一个长度固定的整数数组 arr,请你将该数组中出现的每个零都复写一遍,并将其余的元素向右平移。
4
5 注意:请不要在超过该数组长度的位置写入元素。
6
7 要求:请对输入的数组 就地 进行上述修改,不要从函数返回任何东西。
8
9
10
11 示例 1:
12
13 输入:[1,0,2,3,0,4,5,0]
14 输出:null
15 解释:调用函数后,输入的数组将被修改为:[1,0,0,2,3,0,0,4]
16 示例 2:
17
18 输入:[1,2,3]
19 输出:null
20

 

思路:

判断如果出现0,标记一下,下一位等于0,后一位的值 等于 前一位的值

python 练习题-复写零(LeetCode 1089)_javascript

python 练习题-复写零(LeetCode 1089)_python_02

1 class Solution(object):
2 def duplicateZeros(self, arr):
3 """
4 :type arr: List[int]
5 :rtype: None Do not return anything, modify arr in-place instead.
6 """
7 l = len(arr)
8
9 x = 1000
10 for i in range(0, l):
11 if arr[i] == 0 and x +1!=i:
12 x = i
13 for j in range(l-1, i,-1):
14 if i+1 < l:
15 arr[j] = arr[j-1]
16 if i+1 <l:
17 arr[i + 1] = 0
18 return arr
19
20 print

View Code

 

结果:

python 练习题-复写零(LeetCode 1089)_调用函数_03

 

 

 

查看大佬们的博客后,发现,其他思路很不错:

先去掉后面的,然后再出现0的后一位插入0​

 


 



举报

相关推荐

0 条评论