zoukankan      html  css  js  c++  java
  • 2. Add Two Numbers(Leetcode)

    题目:

    You are given two non-empty linked lists representing two non-negative integers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbers and return it as a linked list.

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

    Example:

    Input: (2 -> 4 -> 3) + (5 -> 6 -> 4)
    Output: 7 -> 0 -> 8
    Explanation: 342 + 465 = 807.

    方法一:数学加减法
    1、结果存储:建立一个结果节点和一个结果节点的引用,一个用来存结果,一个方便放回结果。以后返回值是链表都设置两个链表存储
    2、时间复杂度:O(max(m,n)) 空间复杂度:O(max(m,n))+1。+1是因为相加后可能有进位
    3、循环递归的区别:
      循环:重复执行同一个代码。
        可能不能解决所有问题。
      递归:自己调用自己。就像一个小孩上楼取东西。台阶的结构是一样的,小孩一层一层爬楼梯直到取到东西再跑下来。
        优点:代码更简洁清晰,可读性更好。
        缺点:由于递归需要系统堆栈,所以空间消耗要比非递归代码要大很多。而且,如果递归深度太大,可能系统撑不住。
    4、当做条件判断和条件循环的时候,一定要考虑出判断和循环后是否还有什么情况是需要计算的

    运行时间:31 ms

    
    
    苟有恒,何必三更眠五更起;最无益,莫过一日暴十日寒。
  • 相关阅读:
    1082 射击比赛 (20 分)
    1091 N-自守数 (15 分)
    1064 朋友数 (20 分)
    1031 查验身份证 (15 分)
    1028 人口普查 (20 分)
    1059 C语言竞赛 (20 分)
    1083 是否存在相等的差 (20 分)
    1077 互评成绩计算 (20 分)
    792. 高精度减法
    791. 高精度加法
  • 原文地址:https://www.cnblogs.com/shaer/p/10399671.html
Copyright © 2011-2022 走看看