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

    给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。

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

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

    • 示例 1:

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

    • 示例 2:

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

    • 分析:

    此题主要考察对于一串数字123, 如何实现给其个位数加一

    1. 可以将数字看做一串字符串,每次遍历,就将字符串拼接起来,最后转换字符串格式为整形并加一,再次遍历字符串,实现题目要求
    2. 遍历列表,首先获取其个位数的数值,若个位数的值小于9, 则将个位数的值加一,若个位数的值=9, 则将个位数的值赋值为0, 并将十位数的值加1, 以此类推。 对于只有一个个位数的列表,则直接将个位数置0, 并将十位数由0变1
    • 解法1:
    class Solution(object):
        def plusOne(self, digits):
            """
            :type digits: List[int]
            :rtype: List[int]
            """
    		tmp = ""
            for i, num in enumerate(digits):
                tmp = tmp + str(num)
            num = str(int(tmp) + 1)
            return [int(digit) for digit in num]
    
    
    • 解法2:
    class Solution(object):
        def plusOne(self, digits):
            """
            :type digits: List[int]
            :rtype: List[int]
            """
            
            tmp_list = []
            for index, num in enumerate(digits):
                tmp_list.append(str(num))
            total_num = ''.join(tmp_list)
            total_num = str(int(total_num) + 1)
            return [int(d) for d in total_num]
    
    
    • 解法3:
    
    class Solution(object):
        def plusOne(self, digits):
            """
            :type digits: List[int]
            :rtype: List[int]
            """
            for i in range(len(digits)-1, -1, -1):
                if digits[i] < 9:
                    digits[i] += 1
                    return digits
                digits[i] = 0
            str = [0] * (len(digits) + 1)
            str[0] = 1
            return str
    
  • 相关阅读:
    django控制台输出sql日志
    Find概述
    命令大全
    京东智联云在 Serverless 的探索
    如何优雅地部署一个 Serverless Next.js 应用
    腾讯云 Serverless 保障《创造营》硬糖少女 C 位出道
    Serverless 应用实践及典型案例解析
    LeetCode 数组:62. 不同路径(动态规划 带记忆的递归)
    LeetCode 数组:56.合并区间(数组的自带排序函数 区间合并问题)
    LeetCode 数组:162. 寻找峰值(二分法)
  • 原文地址:https://www.cnblogs.com/AimeeCodeWorld/p/10803208.html
Copyright © 2011-2022 走看看