博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Leetcode-探索 | 加一
阅读量:6405 次
发布时间:2019-06-23

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

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

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

你可以假设除了整数 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 = 013             digits[array_len-1] += 114             if digits[array_len-1] > 9:15                 digits[array_len-1] -= 1016                 c = 117             for i in range(array_len-2, -1, -1):18                 digits[i] += c19                 if digits[i] > 9:20                     digits[i] -= 1021                     c = 122                 else:23                     c = 024             if c == 1:25                 digits.append(1)26                 for i in range(0, array_len):27                     digits[i+1] = digits[i]28                 digits[0] = 129             30             return digits31         else:32             return [1]

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

转载于:https://www.cnblogs.com/qinziang/p/9201839.html

你可能感兴趣的文章
透视学理论(二)
查看>>
Dubbo/HSF在Service Mesh下的思考和方案
查看>>
Django form表单
查看>>
CTYL-9.14(tomcat端口与阿里云安全组,域名与tomcat配置,域名与反向代理)
查看>>
Java 多线程相关问题记录
查看>>
LNMP架构介绍、MySQL安装、PHP安装、 Nginx介绍
查看>>
es6 class 笔记
查看>>
简单的Spark+Mysql整合开发
查看>>
阿里java面试经验大汇总(附阿里职位需求)
查看>>
Python全套零基础视频教程+软件2018最新编程视频!
查看>>
内存管理之1:x86段式内存管理与保护模式
查看>>
20180925上课截图
查看>>
IO输入/输出流的简单总结
查看>>
JavaScript之DOM-9 HTML DOM(HTML DOM概述、常用HTML DOM对象、HTML表单)
查看>>
技术成长之路(一)
查看>>
中国北方国际五金城硬件选型
查看>>
Discuz X2 [Type] 查询语句安全威胁
查看>>
php.exe启动时提示缺少MVCR110.dall 64位 window系统 解决
查看>>
Hive索引
查看>>
判断是否为数字方法
查看>>