python算法

Posted 凭本事闯天下

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python算法相关的知识,希望对你有一定的参考价值。

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算法的主要内容,如果未能解决你的问题,请参考以下文章

片段(Java) | 机试题+算法思路+考点+代码解析 2023

常用python日期日志获取内容循环的代码片段

python 有用的Python代码片段

Python 向 Postman 请求代码片段

python [代码片段]一些有趣的代码#sort

使用 Python 代码片段编写 LaTeX 文档