zoukankan      html  css  js  c++  java
  • LeetCode 2.两数相加

    LeetCode 2.两数相加

    给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。

    如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。

    您可以假设除了数字 0 之外,这两个数都不会以 0 开头。

    示例:

    输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)
    输出:7 -> 0 -> 8
    原因:342 + 465 = 807


    知识点:

    • strrev(); // 实现字符串反转
    • str_split(); // 分割字符串
    • % // 取余
    • intval(数/10); // 整除
    • __construct 对象初始化
    • 尾插法

    PHP代码:

    class ListNode
    {
        public $val = 0;
        public $next = null;
        function __construct($val)
        {
            $this->val = $val;
        }
    }
    
    // 初始化测试数据
    /*
    $l1 = new ListNode(2);
    $l11 = new ListNode(4);
    $l12 = new ListNode(3);
    $l1->next = $l11;
    $l11->next = $l12;
    $l2 = new ListNode(5);
    $l21 = new ListNode(6);
    $l22 = new ListNode(4);
    $l23 = new ListNode(4);
    $l2->next = $l21;
    $l21->next = $l22;
    $l22->next = $l23;
    */
    
    function addTwoNumbers($l1, $l2) {
        $ans = '';
        $mod = 0;
    
        $array_1 = $array_2 = array();
        while ($l1 -> next != null) {
            array_push($array_1, $l1 -> val);
            $l1 = $l1 -> next;
        }
        array_push($array_1, $l1 -> val);
        while ($l2 -> next != null) {
            array_push($array_2, $l2 -> val);
            $l2 = $l2 -> next;
        }
        array_push($array_2, $l2 -> val);
    
        for ($i = 0; $i < max(count($array_1), count($array_2)); ++ $i) {
            $now1 = $i >= count($array_1) ? 0: intval($array_1[$i]);
            $now2 = $i >= count($array_2) ? 0: intval($array_2[$i]);
            $mod += $now1 + $now2;
            $ans .= strval($mod % 10);
            $mod = intval($mod / 10);
        }
        if ($mod != 0) {
            $ans .= strval($mod);
        }
        $ansNode = $ansNodeList = new ListNode($ans[0]);
        for ($i = 1; $i < strlen($ans); ++ $i) {
            $tempNode = new ListNode($ans[$i]);
            $ansNode->next = $tempNode;
            $ansNode = $tempNode;
        }
        return $ansNodeList;
    }
    
    var_dump(addTwoNumbers($l1, $l2));
  • 相关阅读:
    Silverlight学习(五)图形标绘
    Silverlight学习(四) domainservice动态多条件查询
    MySQL之单表查询
    mysql外键的三种关系
    mysql之完整性约束
    接口类和抽象类的区别
    mysql中的sql_mode
    html5本地存储技术 localstorage
    mysql数值类型
    mysql
  • 原文地址:https://www.cnblogs.com/GetcharZp/p/11756313.html
Copyright © 2011-2022 走看看