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

【刷題】 leetcode 2 .兩數(shù)相加

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

【刷題】 leetcode 2 .兩數(shù)相加,刷題,leetcode,網(wǎng)絡(luò),算法,c語言,數(shù)據(jù)結(jié)構(gòu),學(xué)習(xí)

兩數(shù)相加

我們來看看題目,,,,
往往困難的題只需要 簡單的敘述。

好像只用找到兩個數(shù),整合成一個鏈表就可以。應(yīng)該
【刷題】 leetcode 2 .兩數(shù)相加,刷題,leetcode,網(wǎng)絡(luò),算法,c語言,數(shù)據(jù)結(jié)構(gòu),學(xué)習(xí)

1 思路一 (暴斃版)

  1. 首先 我最快想到思路是 分別根據(jù)兩個鏈表求出對應(yīng)數(shù)
  2. 然后加一起 ,得到和
  3. 再把和拆分儲存到鏈表里
    為此我們需要手撕一下鏈表頭插。
 typedef struct ListNode SLTNode;
SLTNode* buynode(int n) {
	//開辟空間
    SLTNode* node = (SLTNode*)malloc(sizeof(SLTNode));
    node->next = NULL;
    node->val = n;
    return node;
}
void pushback(SLTNode** ret, int n) {
	//創(chuàng)建節(jié)點
    SLTNode* node = buynode(n);
    //如果頭為空 node成為頭
    if (*ret == NULL)
    {
        *ret = node;
        return;
    }
	//找尾
    SLTNode* cur = *ret;
    while(cur->next) {
        cur = cur->next;
    }
    //插入
    cur->next = node;
    return;
}

SLTNode* addTwoNumbers(SLTNode* l1, SLTNode* l2) {
    //選擇long long 來儲存較大數(shù)
    long long  num1 = 0, num2 = 0;
    long long   a = 1;
    //計算數(shù)一
    while (l1 != NULL) {
        num1 += (l1->val) * a;
        l1 = l1->next;
        a *= 10;
    }
    a = 1;
    //計算數(shù)二
    while (l2 != NULL) {
        num2 += (l2->val) * a;
        l2 = l2->next;
        a *= 10;
    }
    //求和
    long long  sum = num1 + num2;
    //構(gòu)建鏈表
    SLTNode* ret = NULL;
    if(sum == 0)
    {
        pushback(&ret,0);
        return ret;
    }
    while (sum != 0) {
        long long  n = sum % 10;
        pushback(&ret, n);
        sum = sum / 10;
    }
    //返回鏈表
    return ret;
}

一頓操作猛如虎,一看提交原地杵········
【刷題】 leetcode 2 .兩數(shù)相加,刷題,leetcode,網(wǎng)絡(luò),算法,c語言,數(shù)據(jù)結(jié)構(gòu),學(xué)習(xí)
雖然我已經(jīng)使用最大的數(shù)據(jù)類型 long long ,但是最后的測試數(shù)據(jù)太大了,還有3 個樣例無法通過。這下子要從頭開始了。
這就得夸夸力扣了,豐富的測試用例,不會隨便讓你過

2 思路二 (本質(zhì)出發(fā))

思路一的簡單加和不能完成目的,那我們只好深入到加法的本質(zhì)中去:
按位計算,滿10進一 ,逐個逐個計算
這樣就算把天文數(shù)字填進來,只要內(nèi)存夠,咱都能解決!!!

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     struct ListNode *next;
 * };
 */
typedef struct ListNode Listnode;
struct ListNode* addTwoNumbers(struct ListNode* l1, struct ListNode* l2) {
    //創(chuàng)建頭結(jié)點
    Listnode* head = (Listnode*)malloc(sizeof(Listnode));
    //創(chuàng)建尾指針
    Listnode* cur = head;
    //進位數(shù)
    int t = 0;
    //l1 l2 t 全為空才停止
    while(l1||l2||t){
        //l1 為真則把值賦值在t上
        if(l1) {
            t += l1->val;
            l1 = l1->next;
        }
        //l2 為真則把值賦值在t上
        if(l2) {
            t += l2->val;
            l2 = l2->next;
        }
        //創(chuàng)建節(jié)點
        cur->next = ( Listnode *)malloc(sizeof(Listnode));
        cur->next->val = t % 10;
        cur->next->next = NULL;
        //向后移動
        cur = cur->next;
        t /= 10;
    }
    return head->next;

}

一氣呵成,呼~~~~
我們舍去手撕鏈表頭插的痛苦。直接改為“滿足條件”就開辟新空間。因此為了方便這里使用帶頭鏈表。
提交! 過過過過啦!?。。。。?/strong>
【刷題】 leetcode 2 .兩數(shù)相加,刷題,leetcode,網(wǎng)絡(luò),算法,c語言,數(shù)據(jù)結(jié)構(gòu),學(xué)習(xí)
來看看性能怎么樣,打敗了80%的用戶,10ms.
來分析一下咱們算法的時間復(fù)雜度 ,遍歷鏈表,最壞情況也是遍歷了一條很長的鏈表。那咱時間復(fù)雜度就是O(n)。
?。窟€有比 O(n) 更快的算法???

答案是肯定沒有,運行速度的具體原因和配置環(huán)境有關(guān)。
咱們的代碼沖一沖也可以0ms。
這道題考察了咱們對循環(huán)的認識,通過循環(huán)把加法本質(zhì)實現(xiàn)。進而完成題目!文章來源地址http://www.zghlxwxcb.cn/news/detail-803592.html

謝謝閱讀Thanks?(?ω?)?

下一篇文章見!?。。。?!

到了這里,關(guān)于【刷題】 leetcode 2 .兩數(shù)相加的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • LeetCode——兩數(shù)相加

    LeetCode——兩數(shù)相加

    目錄 一、兩數(shù)相加 1、題目 2、題目解讀 3、代碼 二、反轉(zhuǎn)鏈表 1、題目 ?2、題目解讀 3、代碼? 三、兩數(shù)相加 II 1、題目 2、題目解讀 3、代碼 反轉(zhuǎn)鏈表再進行計算 借助棧 2. 兩數(shù)相加 - 力扣(Leetcode) 給你兩個? 非空 ?的鏈表,表示兩個非負的整數(shù)。它們每位數(shù)字都是按照

    2024年02月12日
    瀏覽(23)
  • LeetCode:2. 兩數(shù)相加

    LeetCode:2. 兩數(shù)相加

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

    2024年02月09日
    瀏覽(17)
  • 兩數(shù)相加 LeetCode熱題100

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

    2024年02月14日
    瀏覽(17)
  • leetcode 2. 兩數(shù)相加(java)

    leetcode 2. 兩數(shù)相加(java)

    難度 - 中等 leetcode 2. 兩數(shù)相加 給你兩個 非空 的鏈表,表示兩個非負的整數(shù)。它們每位數(shù)字都是按照 逆序 的方式存儲的,并且每個節(jié)點只能存儲 一位 數(shù)字。 請你將兩個數(shù)相加,并以相同形式返回一個表示和的鏈表。 你可以假設(shè)除了數(shù)字 0 之外,這兩個數(shù)都不會以 0 開頭。

    2024年02月09日
    瀏覽(22)
  • LeetCode-C#-0002.兩數(shù)相加

    該題目來源于LeetCode 如有侵權(quán),立馬刪除。 解法不唯一,如有新解法可一同討論。 0002兩數(shù)相加 給你兩個非空的鏈表,表示兩個非負的整數(shù),它們每位數(shù)字都是按照逆序的方式存儲的,并且每個節(jié)點只能存儲一位數(shù)字。 請你將兩個數(shù)相加,并以相同形式返回一個表示和的鏈

    2024年02月08日
    瀏覽(21)
  • leetcode 445. Add Two Numbers II(兩數(shù)相加)

    leetcode 445. Add Two Numbers II(兩數(shù)相加)

    用鏈表代表2個數(shù)字,這2個數(shù)字相加的和用鏈表返回。 最高位在鏈表的head. 思路: 1.鏈表逆序 數(shù)字相加是從低位到高位的,然而鏈表中的數(shù)字是從高位指向低位。 所以涉及到鏈表的逆序。 逆序之后只需從head到tail把兩個鏈表的數(shù)字相加,再用一個int表示進位。 鏈表的逆序

    2024年02月16日
    瀏覽(26)
  • 2023/07/02_leetcode每日一題_2.兩數(shù)相加

    給你兩個 非空 的鏈表,表示兩個非負的整數(shù)。它們每位數(shù)字都是按照 逆序 的方式存儲的,并且每個節(jié)點只能存儲 一位 數(shù)字。 請你將兩個數(shù)相加,并以相同形式返回一個表示和的鏈表。 你可以假設(shè)除了數(shù)字 0 之外,這兩個數(shù)都不會以 0 開頭。 示例: 輸入:l1 = [9,9,9,9,9,9

    2024年02月11日
    瀏覽(21)
  • 簡單C語言兩數(shù)相加

    ? ? 在C語言中,相加兩數(shù)是一個基本的要求,但其實也有復(fù)雜操作,比如 高精度加法 ,或者 鏈表相加 (還要考慮進位),都是比較難的,那么今天我們來聊一聊簡單的problem a+b; ? ? 先發(fā)代碼 如上便是兩數(shù)之和的代碼,但是大家有沒有想過,如果是兩個超長整數(shù)相加,那么

    2024年02月07日
    瀏覽(19)
  • 力扣---兩數(shù)相加(c語言版)

    力扣---兩數(shù)相加(c語言版)

    ??個人主頁:?? :???初階牛??? ??推薦專欄: ?????? c語言初階 ??個人信條: ??知行合一 ??本篇簡介::記錄一個力扣寫了好久的一個問題 金句分享: ?在心里種花,人生才不會荒蕪!? 題目名稱:兩數(shù)相加(題目來源于力扣) [傳送門] 此題被 進位 問題困擾良久,所以注意

    2023年04月10日
    瀏覽(15)
  • 【算法Hot100系列】兩數(shù)相加

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

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

    2024年02月04日
    瀏覽(17)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包