zoukankan      html  css  js  c++  java
  • Leetcode——66.加一


    @author: ZZQ
    @software: PyCharm
    @file: leetcode66_加一.py
    @time: 2018/11/29 16:07
    要求:给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。

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

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

    示例 1:

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

    示例 2:

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

    思路: 注意9999+1=10000这种情况

    class Solution():
        def __init__(self):
            pass
    
        def plusOne(self, digits):
            """
                :type digits: List[int]
                :rtype: List[int]
            """
            dig_len = len(digits)
            ans = [0]*(dig_len+1)
            for i in range(dig_len-1, -1, -1):
                ans[i+1] = digits[i]
            # print ans
            s = [0]*dig_len
            for i in range(dig_len, -1, -1):
                if i == dig_len:
                    if ans[i] == 9:
                        ans[i] = 0
                        s[i-1] = 1
                    else:
                        ans[i] = ans[i] + 1
                else:
                    if ans[i] + s[i] > 9:
                        ans[i] = 0
                        s[i-1] = 1
                    else:
                        ans[i] = ans[i] + s[i]
            if ans[0] != 0:
                return ans
            else:
                return ans[1:]
    
  • 相关阅读:
    科普园地
    专家段 错误 新闻
    16进制转rgb
    图片截取0825
    域名的问题 图片显示不出来
    height cell0809
    添加银行卡
    DeviceDelegateHelper.m
    UUID
    MBProgressHUD 动画
  • 原文地址:https://www.cnblogs.com/zzq-123456/p/10039035.html
Copyright © 2011-2022 走看看