博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[Leetcode]加一
阅读量:4163 次
发布时间:2019-05-26

本文共 641 字,大约阅读时间需要 2 分钟。

[Leetcode]加一

题目描述

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

最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。
你可以假设除了整数 0 之外,这个整数不会以零开头。

示例 1:

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

示例 2:

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

解题思路
  • 加一需要考虑两种情况
    • 0~8加一,直接加一
    • 9加一,进位
  • 最后一位如果是9,加一有进位,那么前面的数字也要加一,继续判断是否有进位
  • 最后一位小于9,直接返回加一后的值
实现代码
class Solution:    def plusOne(self, digits: List[int]) -> List[int]:        for i in range(len(digits)-1,-1,-1):            item = digits[i] + 1            digits[i] = item % 10            if digits[i]!= 0: #最后一位小于9直接加一返回,否则前面的数字加一继续判断是否有进位                return digits        digits = [1] +digits #类似999的数字,需要额外进位        return digits

转载地址:http://ayoxi.baihongyu.com/

你可能感兴趣的文章
oracle中两个时间戳相减得到间隔毫秒数
查看>>
Oracle中将毫秒数转换为timestamp类型的两种方法
查看>>
mybatis配置and rownum< minus 查询第几行到第几行数据的sql原型和mybatis原型。
查看>>
oracle的concat函数使用问题。
查看>>
eclipse编辑状态下怎样让指定行左移或右移?
查看>>
plsql developer如何导入导出表结构和数据以及如何复制表结构和数据?
查看>>
oracle如何去除某个字段中两边的空格?
查看>>
plsql developer如何在窗口列表直接可以修改表格中的数据?
查看>>
java自定义注解有什么作用?
查看>>
ORACLE中通过SQL语句(alter table)来增加、删除、修改字段
查看>>
js的Object对象如何访问中间有 . 点号的属性(键),获得其值?
查看>>
@ManyToOne和@OneToMany 注解
查看>>
Java集合(1) - List集合源码解析
查看>>
Java集合(2) - Map与AbstractMap源码解析
查看>>
Java集合(3) - HashMap源码解析与常见问题(一)
查看>>
Java集合(4) - HashMap-put()源码解析与常见问题(二)
查看>>
Java集合(5) - HashMap查删源码解析与常见问题(三)
查看>>
Java集合(6) - LinkedHashMap源码解析
查看>>
Java集合(7) - TreeMap源码解析
查看>>
Java集合(8) - Set与AbstractSet源码解析
查看>>