Q66 Plus One

Given a non-negative integer represented as a non-empty array of digits, plus one to the integer.

You may assume the integer do not contain any leading zero, except the number 0 itself.

The digits are stored such that the most significant digit is at the head of the list.

解题思路:

这道题的意思是给你一个非负整数,它被拆成一个列表,如 939 变成 [9,3,9],然后让你实现+1操作。简单方法就是从后往前判断各个数字,逢九进1。

Python实现:
class Solution:
    def plusOne(self, digits):
        """
        :type digits: List[int]
        :rtype: List[int]
        """
        if digits[-1] != 9:  # 如果各位不为9,则直接加1即可
            digits[-1] += 1
            return digits
        else:
            i = len(digits) - 1
            bit = 1
            while i >= 0:
                if digits[i] + bit == 10:
                    digits[i] = 0
                    bit = 1
                else:
                    digits[i] += 1
                    bit = 0
                    break  # 不再向前进位
                i -= 1
        if bit == 1:  # 如果最前面仍然产生进位,则插入1,比如 99 -> 100
            digits.insert(0,1)
        return digits

a = [2,4,9,3,9]
b = Solution()  # 24940
print(b.plusOne(a))

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏章鱼的慢慢技术路

《算法图解》第四章笔记与课后练习

1895
来自专栏用户画像

7.7.3 多路平衡归并与败者树

归并趟数S=[logm R](向下取整)。从而增加归并路数m可以减少归并趟数S,进而减少访问外存的次数(I/O次数)。然而,当增加归并路数m时,内部归并时间将增...

772
来自专栏苦逼的码农

【面试现场】如何在500w个单词中统计特定前缀的单词有多少个?

题目:我有500w个单词,你帮忙设计一个数据结构来进行存储,存好之后,我有两个需求。

1111
来自专栏Fish

归并排序

在课本上学到了归并排序,不过课本上写得有些模糊,所以查了一下,原本对某科已经失去了信心,不过发现某科C语言版的写得还挺好理解,于是就照着自己写了一个。代码可以自...

2477
来自专栏battcn

一起学设计模式 - 迭代器模式

迭代器模式听起来可能感觉很陌生,但是实际上, 迭代器模式是所有设计模式中最简单也是最常用的设计模式,正是因为太常用了,所以导致很多人忽略了它的存在。

904
来自专栏Java编程

10个有关String的面试问题

下面是面试中最容易问到的有关String的问题。

1K2
来自专栏Bingo的深度学习杂货店

Q169 Majority Element

Given an array of size n, find the majority element. The majority element is the...

4147
来自专栏一英里广度一英寸深度的学习

二叉树的插入和搜索--python实现

在二分查找基于数组,在插入删除时需要移动较多节点,采用二叉树的数据结构,更好的实现插入、删除操作。

4091
来自专栏潇涧技术专栏

Python Data Structures - C3 Data Structures

参考内容: 1.Problem Solving with Python Chapter 2 Algorithm Analysis Chapter 3 Ba...

721
来自专栏恰童鞋骚年

剑指Offer面试题:9.二进制中1的个数

  一个基本的思路:先判断整数二进制表示中最右边一位是不是1。接着把输入的整数右移一位,此时原来处于从右边数起的第二位被移到最右边了,再判断是不是1。这样每次移...

752

扫码关注云+社区

领取腾讯云代金券