码迷,mamicode.com
首页 > 编程语言 > 详细

python算法

时间:2019-12-08 12:40:50      阅读:84      评论:0      收藏:0      [点我收藏+]

标签:授权   方法   放弃   one   etc   个数   append   开头   -o   

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

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

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

注:首先想到的解决办法是将数组转化成int类型进行加1运算,但是此方法存在越界限制,操作系统为64和32位操作系统,int类型数字有可能超限,此方法放弃

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/plus-one
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

方法一:(逆序)先将数组元素取反,然后从最低进行判断,若判断位置为不为9时,该位加1;为9时此位数置0,并对下一位进行判断

    def plusOne(self, digits: [int]) -> [int]:
        digits1 = list(reversed(digits))
        for i in range(0,len(digits1),1):
            if digits1[i] != 9:
                digits1[i] += 1
                print(i)
                return list(reversed(digits1))
            digits1[i] = 0
        digits1[len(digits1)-1]=0
        digits1.append(1)
        return list(reversed(digits1))

方法二:(借鉴LeetCode)

  • 遍历digits,判断每位是否为9,若不是则+1并返回,否则将此位置0
  • 对于digits里全为9的情况,需要扩展list,并将首位置为1
class Solution:
    def plusOne(self, digits: [int]) -> [int]:
        for i in range(len(digits) - 1,-1,-1):
            if digits[i] != 9:
                digits[i] += 1
                return digits
            digits[i] = 0
        digits[0] = 1
        digits.append(0)
        return digits

 

python算法

标签:授权   方法   放弃   one   etc   个数   append   开头   -o   

原文地址:https://www.cnblogs.com/softerware/p/12005186.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!