zoukankan      html  css  js  c++  java
  • 题目:两数相加(C++)

    两数相加我写出的代码如下

    static const auto io_speed_up = []()
    {
        std::ios::sync_with_stdio(false);
        cin.tie(nullptr);
        return 0;
    }();
    
    class Solution {
    public:
        ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {
            bool carry = false;
            ListNode* l3 = nullptr;
            ListNode* head = nullptr;
            ListNode* tail = nullptr;
    
            tail = head = new ListNode{l1->val + l2->val};
            if (head->val > 9)
            {
                head->val -= 10;
                carry = true;
            }
            l1 = l1->next;
            l2 = l2->next;
    
            while (l1 || l2 )
            {
                if (l1  && l2 )
                {
                    l3 = new ListNode{l1->val + l2->val};
                    l1 = l1->next;
                    l2 = l2->next;
                }
                else if (l1 )
                {
                    l3 = new ListNode{l1->val};
                    l1 = l1->next;
                }
                else
                {
                    l3 = new ListNode{l2->val};
                    l2 = l2->next;
                }
                if (carry)
                {
                    ++l3->val;
                    carry = false;
                }
                if (l3->val > 9)
                {
                    l3->val -= 10;
                    carry = true;
                }
    
                tail->next = l3;
                tail = l3;
            }
            if (carry)
            {
                l3 = new ListNode{1};
                tail->next = l3;
                tail = l3;
            }
            return head;
        }
    };

    在提交后发现并不是最优解,跑去看了看最优解,得出原因:可能是我写的循环中包含分支太多,导致一次循环时间超过了最优解中的两次循环。

    由此可见在写C++代码中要考虑到if语句对于现代CPU速度的影响。

  • 相关阅读:
    【洛谷P6835】线形生物
    【洛谷P2679】子串
    【洛谷P5072】盼君勿忘
    【洛谷P3312】数表
    【洛谷P1447】能量采集
    【洛谷P2257】YY的GCD
    【洛谷P4318】完全平方数
    【AT2300】Snuke Line
    window.showModalDialog
    js typeof
  • 原文地址:https://www.cnblogs.com/change4587/p/9142900.html
Copyright © 2011-2022 走看看