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


     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

    结果:

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

    先去掉后面的,然后再出现0的后一位插入0,博客链接:https://blog.csdn.net/weixin_44740082/article/details/95379428

    题目来源:

    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/duplicate-zeros

  • 相关阅读:
    HTML初体验
    out传值
    函数
    冒泡排序
    数组
    异常语句
    类 string math
    for 穷举 迭代
    HTML JavaScript及运算符
    HTML 格式与布局
  • 原文地址:https://www.cnblogs.com/whycai/p/14311007.html
Copyright © 2020-2023  润新知