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

 

思路:

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

 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 (Solution.duplicateZeros(0,[1,2,3]))
View Code

相关文章:

  • 2021-09-06
  • 2022-02-09
  • 2021-12-07
  • 2021-11-30
  • 2021-11-14
  • 2022-01-14
猜你喜欢
  • 2022-02-11
  • 2022-01-22
  • 2021-08-29
  • 2021-05-23
  • 2022-12-23
  • 2022-12-23
  • 2021-05-31
相关资源
相似解决方案