• 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

    
    
    苟有恒,何必三更眠五更起;最无益,莫过一日暴十日寒。
  • 相关阅读:
    web 安全问题(二):XSS攻击
    web 安全问题(一):CSRF 攻击
    关于阅读源码
    vue 阅读一【待完结】
    【转】服务器添加新用户用ssh-key 登录,并禁用root用户 密码登录
    sass & compass 实战录
    浏览器兼容性总结
    常用的一个cookie 对象,还有path 兼容性问题
    css margin塌陷问题
    markdown 语法简要备忘
  • 原文地址:https://www.cnblogs.com/shaer/p/10399671.html
Copyright © 2020-2023  润新知