zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    canvasnode的设计思路和api介绍
    希望新浪网络学院的童鞋们加油
    和新童鞋们吃饭,见到了jeremy
    MongoDB 学习资料
    [转] Scrum框架及其背后的原则
    twisted学习资料
    创建课程表
    进程
    协程
    支付宝支付流程
  • 原文地址:https://www.cnblogs.com/NPC-assange/p/9361928.html
Copyright © 2011-2022 走看看