当前位置:   article > 正文

leetcode66.加一_66. 加一 leetcode

66. 加一 leetcode

1.题目描述

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

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

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

示例 1:

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

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

2.解题思路

因为要考虑大数溢出的情况,所以要转成字符串运算。

但是我的这个版本的代码复杂了,它对应的是加上任意一个数的实现,在加1的情况下只要考虑末位是否为9即可

3.代码实现

版本一:

  1. class Solution(object):
  2. def plusOne(self, digits):
  3. """
  4. :type digits: List[int]
  5. :rtype: List[int]
  6. """
  7. #string = "".join(str(i) for i in digits)
  8. over = 0
  9. res = []
  10. for i in range(len(digits)-1,-1,-1):
  11. if i == len(digits)-1:
  12. tmp = int(digits[i])+over+1
  13. if tmp >= 10:
  14. over = 1
  15. tmp %= 10
  16. res.insert(0,tmp)
  17. else:
  18. over = 0
  19. res.insert(0,tmp)
  20. else:
  21. tmp = int(digits[i])+over
  22. if tmp >= 10:
  23. over = 1
  24. tmp %= 10
  25. res.insert(0,tmp)
  26. else:
  27. over = 0
  28. res.insert(0,tmp)
  29. if over == 1:
  30. res.insert(0,1)
  31. return res

版本二:

  1. class Solution(object):
  2. def plusOne(self, digits):
  3. """
  4. :type digits: List[int]
  5. :rtype: List[int]
  6. """
  7. #string = "".join(str(i) for i in digits)
  8. for i in range(len(digits)-1,-1,-1):
  9. if digits[i] == 9:
  10. digits[i] = 0
  11. else:
  12. digits[i] += 1
  13. return digits
  14. if digits[0] == 0:
  15. digits.insert(0,1)
  16. return digits

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/380540
推荐阅读
相关标签
  

闽ICP备14008679号