LeetCode--066--加一

问题描述:

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

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

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

示例 1:

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

示例 2:

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

 方法1:

 1 class Solution(object):
 2     def plusOne(self, digits):
 3         """
 4         :type digits: List[int]
 5         :rtype: List[int]
 6         """
 7         if digits[-1] +1 < 10:#最后一位+1 < 10 的情况
 8             digits[-1] += 1
 9             return digits
10         else:#=10的情况
11             digits.reverse()#反转,无返回值
12             digits[0] += 1
13             for i in range(len(digits)):
14                 if digits[i] == 10:
15                     digits[i] = 0
16                     if i + 1 != len(digits):
17                         digits[i+1] += 1
18                     else:
19                         digits[-1] = 0
20                         digits.append(1)
21                 else:
22                     digits.reverse()
23                     return digits
24                 # if digits[-1] == 10:
25                 #     digits[-1] = 0
26                 #     digits.append(1)
27         digits.reverse()
28         return digits

方法2:

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

注:

1.for i in range(始,末,步长):

末取不到.

2.Python包含以下函数:

序号 函数
1 cmp(list1, list2)
比较两个列表的元素
2 len(list)
列表元素个数
3 max(list)
返回列表元素最大值
4 min(list)
返回列表元素最小值
5 list(seq)
将元组转换为列表

3.Python包含以下方法:

序号 方法
1 list.append(obj)
在列表末尾添加新的对象
2 list.count(obj)
统计某个元素在列表中出现的次数
3 list.extend(seq)
在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
4 list.index(obj)
从列表中找出某个值第一个匹配项的索引位置
5 list.insert(index, obj)
将对象插入列表
6 list.pop([index=-1])
移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
7 list.remove(obj)
移除列表中某个值的第一个匹配项
8 list.reverse()
反向列表中元素
9 list.sort(cmp=None, key=None, reverse=False)
对原列表进行排序

 2018-07-24 18:54:34

猜你喜欢

转载自www.cnblogs.com/NPC-assange/p/9361928.html