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

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

你可以假设除了整数 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 = 0
13             digits[array_len-1] += 1
14             if digits[array_len-1] > 9:
15                 digits[array_len-1] -= 10
16                 c = 1
17             for i in range(array_len-2, -1, -1):
18                 digits[i] += c
19                 if digits[i] > 9:
20                     digits[i] -= 10
21                     c = 1
22                 else:
23                     c = 0
24             if c == 1:
25                 digits.append(1)
26                 for i in range(0, array_len):
27                     digits[i+1] = digits[i]
28                 digits[0] = 1
29
30             return digits
31         else:
32             return [1]

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

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

Leetcode-探索 | 加一相关推荐

  1. leetcode探索专题中的初级算法练习题(python代码+解题思路)

    本文记录leetcode探索专题中的初级算法练习题,附python实现代码&解题思路,做题过程不免查阅网络资料,侵删~如有错误,欢迎指正交流! 目录 专题一:数组: 26.从排序数组中删除重复 ...

  2. ⭐算法入门⭐《线性枚举》简单09 —— LeetCode 66. 加一

    文章目录 一.题目 1.题目描述 2.基础框架 3.原题链接 二.解题报告 1.思路分析 2.时间复杂度 3.代码详解 三.本题小知识 四.加群须知 一.题目 1.题目描述   给定一个由 整数 组成 ...

  3. LeetCode 66. 加一

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

  4. golang刷Leetcode系列 --- 加1

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

  5. leetcode 66. 加一(C语言)

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

  6. LeetCode 66 加一

    原题链接 关键词 :数组  模拟法 解题思路: 此题为处理数组,数组特点  --数组下标  可以前后覆盖  数组元素可交换等. 此题分为三种情况 1.传入数为234形式   ,加一后无进位.直接在最后 ...

  7. LeetCode 探索初级算法-数组:10 有效的数独-20200321

    10 有效的数独-20200321 题目 判断一个 9x9 的数独是否有效.只需要根据以下规则,验证已经填入的数字是否有效即可. 数字 1-9 在每一行只能出现一次. 数字 1-9 在每一列只能出现一 ...

  8. Java实现 LeetCode 66 加一

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

  9. leetcode 66. 加一-java简短代码实现

    题目所属分类 模拟加法 原题链接 给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一. 最高位数字存放在数组的首位, 数组中每个元素只存储单个数字. 你可以假设除了整数 0 之外 ...

  10. 算法题库leetcode多加练习

    多加练习:https://leetcode-cn.com/problemset/all/ https://blog.csdn.net/notOnlyRush/article/details/79996 ...

最新文章

  1. kali用Squid简单配置搭建http代理服务器
  2. installshield 4075 错误
  3. oracle 10g 还原表格,oracle 10g 闪回表恢复
  4. 简洁大气好看的个人博客模板HTML源码
  5. python画柱状图-Python绘制柱状图
  6. web安全day34:一步一步学习Linux防火墙
  7. js-ES6学习笔记-Class(6)
  8. sqlserver修改端口号方法
  9. uboot-链接脚本(u-boot.lds)
  10. 蒙纳士大学 英伟达发布 2021 年医疗视觉问答
  11. 【工具】免费的英语语法在线检查工具收集汇总
  12. 仙剑奇侠传1java单机_仙剑奇侠传1单机版
  13. 申报书写作之如何区分研究内容和研究方法
  14. 新浪分享 Insufficient app permissions!
  15. 汉诺塔问题(三阶梵塔问题)
  16. python带你采集某m3u8格式视频~带你任意下载
  17. Android中使用JiaoZiVideoPlayer来实现视频列表播放的效果
  18. 吴颖二:12.14 美联储加息会否影响到美国税改的“影响”
  19. 【AXIS2 调用WebService报错】The given SCOPAction ..... does not math an operation
  20. Python深度学习:脑电图癫痫发作检测

热门文章

  1. 解决ubuntu ufw开启时,kvm虚拟机网络全部无法访问
  2. LIST 和 MAP
  3. JavaScript中 for、for in、for of、forEach等使用总结
  4. WPF中StringFormat的用法
  5. 在PHP中创建和编辑Excel电子表格
  6. 前端面试题学习和总结
  7. shell脚本学习之参数传递
  8. 实现基于Keepalived主从高可用集群网站架构
  9. 安全预测 影响企业风险管理的三大趋势
  10. org.json.JSONException: A JSONObject text must begin with #39;{#39; at character 1 of {解决方法...