博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
(python版) Leetcode-66.加一
阅读量:4091 次
发布时间:2019-05-25

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

01 题目

链接:https://leetcode-cn.com/problems/plus-one

给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。
最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。
你可以假设除了整数 0 之外,这个整数不会以零开头。

示例 1:

输入: [1,2,3]

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

示例 2:

输入: [4,3,2,1]

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

02 解析

一次for循环解决问题

从数组尾部遍历
如果遇到数字不是9就+1,并返回
如果是9,则将当前数字置0,并进入下一轮循环

考虑特殊情况:9999

此时需要检查最后一次for循环的数字是不是0
即digits[0]是否为0,如果是0,则遇到了特殊情况
此时需要在数组最前面加一个数字1,然后返回即可

03 代码

class Solution:    def plusOne(self, digits: List[int]) -> List[int]:        for i in range(len(digits)-1, -1, -1):            if digits[i] is not 9:	# 不是9                digits[i] += 1                return digits            else:	# 是9                digits[i] = 0                if digits[0] is 0:                    digits.insert(0, 1)                    return digits

https://leetcode-cn.com/problems/plus-one/solution/python3-yi-ci-forxun-huan-jie-jue-wen-ti-by-821218/

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

你可能感兴趣的文章
JavaScript入门笔记:全选功能的实现
查看>>
程序设计方法概述:从面相对象到面向功能到面向对象
查看>>
数据库事务
查看>>
JavaScript基础1:JavaScript 错误 - Throw、Try 和 Catch
查看>>
SQL基础总结——20150730
查看>>
SQL join
查看>>
JavaScript实现页面无刷新让时间走动
查看>>
CSS实例:Tab选项卡效果
查看>>
前端设计之特效表单
查看>>
前端设计之CSS布局:上中下三栏自适应高度CSS布局
查看>>
Java的时间操作玩法实例若干
查看>>
JavaScript:时间日期格式验证大全
查看>>
pinyin4j:拼音与汉字的转换实例
查看>>
XML工具代码:SAX从String字符串XML内获取指定节点或属性的值
查看>>
时间日期:获取两个日期相差几天
查看>>
责任链模式 Chain of Responsibility
查看>>
高并发与大数据解决方案概述
查看>>
解决SimpleDateFormat线程安全问题NumberFormatException: multiple points
查看>>
MySQL数据库存储引擎简介
查看>>
处理Maven本地仓库.lastUpdated文件
查看>>