zoukankan      html  css  js  c++  java
  • Leetcode-探索 | 加一

    给定一个非负整数组成的非空数组,在该数的基础上加一,返回一个新的数组。

    最高位数字存放在数组的首位, 数组中每个元素只存储一个数字。

    你可以假设除了整数 0 之外,这个整数不会以零开头。

    示例 1:

    输入: [1,2,3]
    输出: [1,2,4]
    解释: 输入数组表示数字 123。
    

    示例 2:

    输入: [4,3,2,1]
    输出: [4,3,2,2]
    解释: 输入数组表示数字 4321。

    ——————————————————————————————————————————————

    这题很自然想到模拟手算,注意进位和一些值的合法状态范围等,如在编写下面的AC代码时就出现了list.append之后之前的arry_len失效而未察觉的情况。

     1 class Solution(object):
     2     def plusOne(self, digits):
     3         """
     4         :type digits: List[int]
     5         :rtype: List[int]
     6         """
     7         
     8         # calculate by hand
     9         array_len = len(digits)
    10         
    11         if array_len > 0:
    12             c = 0
    13             digits[array_len-1] += 1
    14             if digits[array_len-1] > 9:
    15                 digits[array_len-1] -= 10
    16                 c = 1
    17             for i in range(array_len-2, -1, -1):
    18                 digits[i] += c
    19                 if digits[i] > 9:
    20                     digits[i] -= 10
    21                     c = 1
    22                 else:
    23                     c = 0
    24             if c == 1:
    25                 digits.append(1)
    26                 for i in range(0, array_len):
    27                     digits[i+1] = digits[i]
    28                 digits[0] = 1
    29             
    30             return digits
    31         else:
    32             return [1]

    模拟手算或者这种模拟思想也具有一定程度的启发性。

  • 相关阅读:
    clickhouse集群部署
    zookeeper集群部署
    linux下安装多路径multipath
    采用xtrabackup部署主从同步(生产)
    部署dg备库同步ogg
    goldengate同步(主库rac从库单节点)
    python3发送邮件
    python2发送邮件
    pip版本过高导致报错
    ERROR 1558 (HY000): Column count of mysql.user is wrong
  • 原文地址:https://www.cnblogs.com/qinziang/p/9201839.html
Copyright © 2011-2022 走看看