国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【每日一題】445. 兩數(shù)相加 II

這篇具有很好參考價(jià)值的文章主要介紹了【每日一題】445. 兩數(shù)相加 II。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

445. 兩數(shù)相加 II

題目描述

給你兩個(gè) 非空 鏈表來代表兩個(gè)非負(fù)整數(shù)。數(shù)字最高位位于鏈表開始位置。它們的每個(gè)節(jié)點(diǎn)只存儲(chǔ)一位數(shù)字。將這兩數(shù)相加會(huì)返回一個(gè)新的鏈表。

你可以假設(shè)除了數(shù)字 0 之外,這兩個(gè)數(shù)字都不會(huì)以零開頭。

示例1:
【每日一題】445. 兩數(shù)相加 II,每日一題,面試,算法,職場和發(fā)展

輸入:l1 = [7,2,4,3], l2 = [5,6,4]
輸出:[7,8,0,7]

示例2:

輸入:l1 = [2,4,3], l2 = [5,6,4]
輸出:[8,0,7]

示例3:

輸入:l1 = [0], l2 = [0]
輸出:[0]

提示:

鏈表的長度范圍為 [1, 100]
0 <= node.val <= 9
輸入數(shù)據(jù)保證鏈表代表的數(shù)字無前導(dǎo) 0

進(jìn)階:如果輸入鏈表不能翻轉(zhuǎn)該如何解決?

解題思路

思路:棧+豎式加法。分別使用棧st1、st2存儲(chǔ)鏈表1、2元素,使用sum表示當(dāng)前和,使用add表示進(jìn)位,使用cur表示當(dāng)前位。首先是兩個(gè)指針均不為空時(shí)的處理,接著是兩個(gè)指針兩者之一為空時(shí)的處理,最后要注意殘留add時(shí)的處理。

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode() : val(0), next(nullptr) {}
 *     ListNode(int x) : val(x), next(nullptr) {}
 *     ListNode(int x, ListNode *next) : val(x), next(next) {}
 * };
 */
class Solution {
public:
    ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {
        //既然鏈表正序存儲(chǔ) 那么就使用棧來存儲(chǔ) 利用棧先進(jìn)后出的性質(zhì)
        stack<int> st1,st2;
        while(l1)
        {
            st1.push(l1->val);
            l1=l1->next;
        }
        while(l2)
        {
            st2.push(l2->val);
            l2=l2->next;
        }
        //剩下的本質(zhì)上和2一樣
        int sum;
        int cur;
        int add=0;
        ListNode* L=new ListNode();
        while(!st1.empty()&&!st2.empty())
        {
            sum=(st1.top()+st2.top()+add);
            cur=sum%10;
            add=sum/10;
            ListNode* temp=new ListNode(cur);
            temp->next=L->next;
            L->next=temp;
            st1.pop();
            st2.pop();
        }
        while(!st1.empty())
        {
            sum=(st1.top()+add);
            cur=sum%10;
            add=sum/10;
            ListNode* temp=new ListNode(cur);
            temp->next=L->next;
            L->next=temp;
            st1.pop();
        }
        while(!st2.empty())
        {
            sum=(st2.top()+add);
            cur=sum%10;
            add=sum/10;
            ListNode* temp=new ListNode(cur);
            temp->next=L->next;
            L->next=temp;
            st2.pop();
        }
        if(add)
        {
            ListNode* temp=new ListNode(add);
            temp->next=L->next;
            L->next=temp;
        }
        return L->next;
    }
};

總結(jié):兩數(shù)相加II和兩數(shù)相加的唯一區(qū)別在于,兩數(shù)相加中的數(shù)是逆序存儲(chǔ),而兩數(shù)相加II中的數(shù)是正序存儲(chǔ)。兩數(shù)相加的直觀思維是豎式加法,而豎式加法正好滿足逆序,現(xiàn)在既然是正序,那么就可以考慮如何將正序轉(zhuǎn)換為逆序,此時(shí)正好利用棧結(jié)構(gòu)的特性即可。

代碼可能稍顯冗余,但是思路較為清晰。文章來源地址http://www.zghlxwxcb.cn/news/detail-516548.html

到了這里,關(guān)于【每日一題】445. 兩數(shù)相加 II的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Leetcode每日一題:167. 兩數(shù)之和 II - 輸入有序數(shù)組(2023.7.8 C++)

    Leetcode每日一題:167. 兩數(shù)之和 II - 輸入有序數(shù)組(2023.7.8 C++)

    目錄 167.?兩數(shù)之和 II - 輸入有序數(shù)組 題目描述: 實(shí)現(xiàn)代碼與解析: 暴力(超時(shí)) 雙指針 原理思路: 二分 原理思路: ????????給你一個(gè)下標(biāo)從? 1 ?開始的整數(shù)數(shù)組? numbers ?,該數(shù)組已按 ? 非遞減順序排列?? ,請你從數(shù)組中找出滿足相加之和等于目標(biāo)數(shù)? target ?的兩

    2024年02月13日
    瀏覽(29)
  • leetcode每日一題——45.跳躍游戲II(面試經(jīng)典150題)

    45. 跳躍游戲 II - 力扣(LeetCode) 給定一個(gè)長度為 n 的 0 索引 整數(shù)數(shù)組 nums。 初始位置為 nums[0] 。 每個(gè)元素 nums[i] 表示從索引 i 向前跳轉(zhuǎn)的最大長度。換句話說,如果你在 nums[i] 處,你可以跳轉(zhuǎn)到任意 nums[i + j] 處:? ?0 = j = nums[i]? ? ?i + j n 返回到達(dá)?nums[n - 1] 的最小跳躍次數(shù)

    2024年02月13日
    瀏覽(26)
  • 【力扣每日一題01】兩數(shù)之和

    開了一個(gè)新專欄,用來記錄自己每天刷題,并且也是為了養(yǎng)成每日學(xué)習(xí)這個(gè)習(xí)慣,期待堅(jiān)持一年后的自己! 給定一個(gè)整數(shù)數(shù)組? nums ?和一個(gè)整數(shù)目標(biāo)值? target ,請你在該數(shù)組中找出? 和為目標(biāo)值? target ? 的那? 兩個(gè) ?整數(shù),并返回它們的數(shù)組下標(biāo)。 你可以假設(shè)每種輸入只

    2024年02月10日
    瀏覽(18)
  • 【算法Hot100系列】兩數(shù)相加

    【算法Hot100系列】兩數(shù)相加

    ??????歡迎來到我的博客,很高興能夠在這里和您見面!希望您在這里可以感受到一份輕松愉快的氛圍,不僅可以獲得有趣的內(nèi)容和知識(shí),也可以暢所欲言、分享您的想法和見解。 推薦:kwan 的首頁,持續(xù)學(xué)習(xí),不斷總結(jié),共同進(jìn)步,活到老學(xué)到老 導(dǎo)航 檀越劍指大廠系列:全面總

    2024年02月04日
    瀏覽(17)
  • LeetCode算法題---兩數(shù)相加(二)

    LeetCode算法題---兩數(shù)相加(二)

    給你兩個(gè)?非空 的鏈表,表示兩個(gè)非負(fù)的整數(shù)。它們每位數(shù)字都是按照?逆序?的方式存儲(chǔ)的,并且每個(gè)節(jié)點(diǎn)只能存儲(chǔ)?一位?數(shù)字。 請你將兩個(gè)數(shù)相加,并以相同形式返回一個(gè)表示和的鏈表。 你可以假設(shè)除了數(shù)字 0 之外,這兩個(gè)數(shù)都不會(huì)以 0?開頭。 示例 1: ? 示例 2: 示例

    2024年02月09日
    瀏覽(15)
  • LeetCode·每日一題·415. 字符串相加·模擬

    LeetCode·每日一題·415. 字符串相加·模擬

    作者:小迅 鏈接:https://leetcode.cn/problems/add-strings/solutions/2347085/mo-ni-zhu-shi-chao-ji-xiang-xi-by-xun-ge-fges/ 來源:力扣(LeetCode) 著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請注明出處。 ? 題意 - 給定二個(gè)字符串,計(jì)算它們的和并同樣以字符串形式返回。 直接從

    2024年02月16日
    瀏覽(22)
  • 【力扣每日一題】2023.7.17 字符串相加

    【力扣每日一題】2023.7.17 字符串相加

    題面很簡單,就是要將兩個(gè)字符串看作是數(shù)字然后相加,將最后結(jié)果轉(zhuǎn)為字符串返回即可. 看到這題我的第一反應(yīng)是直接轉(zhuǎn)成數(shù)字再相加再轉(zhuǎn)成字符串,像是這樣: 但這樣就不符合題目要求了( 這不是主要原因 )?,并且遇到大數(shù)就無法轉(zhuǎn)成整型也無法計(jì)算了. 所以需要像是我們列豎式

    2024年02月16日
    瀏覽(24)
  • 【算法】Add Two Numbers 兩數(shù)相加

    給你兩個(gè) 非空 的鏈表,表示兩個(gè)非負(fù)的整數(shù)。它們每位數(shù)字都是按照 逆序 的方式存儲(chǔ)的,并且每個(gè)節(jié)點(diǎn)只能存儲(chǔ) 一位 數(shù)字。 請你將兩個(gè)數(shù)相加,并以相同形式返回一個(gè)表示和的鏈表。 你可以假設(shè)除了數(shù)字 0 之外,這兩個(gè)數(shù)都不會(huì)以 0 開頭。 每個(gè)鏈表中的節(jié)點(diǎn)數(shù)在范圍

    2024年02月11日
    瀏覽(55)
  • LeetCode 算法 2.兩數(shù)相加(python版)

    LeetCode 算法 2.兩數(shù)相加(python版)

    給你兩個(gè) 非空 的鏈表,表示兩個(gè)非負(fù)的整數(shù)。 它們每位數(shù)字都是按照 逆序 的方式存儲(chǔ)的,并且每個(gè)節(jié)點(diǎn)只能存儲(chǔ) 一位 數(shù)字。 請你將兩個(gè)數(shù)相加,并以相同形式返回一個(gè)表示和的鏈表。 你可以假設(shè)除了數(shù)字 0 之外,這兩個(gè)數(shù)都不會(huì)以 0 開頭。

    2024年01月21日
    瀏覽(18)
  • 2023/07/01_leetcode每日一題_1. 兩數(shù)之和

    給定一個(gè)整數(shù)數(shù)組 nums 和一個(gè)整數(shù)目標(biāo)值 target,請你在該數(shù)組中找出 和為目標(biāo)值 target 的那 兩個(gè) 整數(shù),并返回它們的數(shù)組下標(biāo)。 你可以假設(shè)每種輸入只會(huì)對應(yīng)一個(gè)答案。但是,數(shù)組中同一個(gè)元素在答案里不能重復(fù)出現(xiàn)。 你可以按任意順序返回答案。 一開始審錯(cuò)題了,還以

    2024年02月12日
    瀏覽(24)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包