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

算法通關(guān)村十三關(guān) | 數(shù)組字符串加法專題

這篇具有很好參考價(jià)值的文章主要介紹了算法通關(guān)村十三關(guān) | 數(shù)組字符串加法專題。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

1. 數(shù)組實(shí)現(xiàn)整數(shù)加法

題目:LeetCode66,66. 加一 - 力扣(LeetCode)

算法通關(guān)村十三關(guān) | 數(shù)組字符串加法專題,算法通關(guān)村專欄,算法

思路

我們只需要從頭到尾依次運(yùn)算,用常量標(biāo)記是否進(jìn)位,需要考慮的特殊情況是digits = [9,9,9]的時(shí)候進(jìn)位,我們組要?jiǎng)?chuàng)建長(zhǎng)度加1的數(shù)組,首位添加為1即可。

代碼

    /**
     * 數(shù)組實(shí)現(xiàn)整數(shù)加法
     * 需要考慮999+1變成1000,解決方法創(chuàng)建個(gè)新數(shù)組,首位補(bǔ)1
     */
    public static int[] plusOne(int[] digits) {
        int len = digits.length;
        //從末尾向前計(jì)算
        for (int i = len - 1; i >= 0; i--) {
            digits[i]++;
            digits[i] %= 10;
            //加1之后對(duì)10取余不等于0則沒有進(jìn)位,直接返回
            //如果有進(jìn)位,循環(huán)再次執(zhí)行++,
            if (digits[i] != 0)
                return digits;
        }

        //三位數(shù)都有進(jìn)位,999-1000,創(chuàng)建新數(shù)組,首位等于1
        digits = new int[len + 1];
        digits[0] = 1;
        return digits;
    }

2. 字符串實(shí)現(xiàn)加法

題目

????????給定兩個(gè)非負(fù)形式的字符串num1和num2,計(jì)算他們的和以字符串形式返回,不能使用Javaapi

算法通關(guān)村十三關(guān) | 數(shù)組字符串加法專題,算法通關(guān)村專欄,算法

思路

????????還是豎式計(jì)算,從后往前,如果當(dāng)前位置超過10,則發(fā)生進(jìn)位,用兩個(gè)指針分別從兩數(shù)的末尾向前移動(dòng),遇到數(shù)字位數(shù)不同,只需補(bǔ)0繼續(xù)和另一位數(shù)字運(yùn)算。

代碼

    /**
     * 字符串加法,豎式加法,需要判斷是否進(jìn)位??梢杂米兞縼?lái)存儲(chǔ)每次進(jìn)位的值
     */
    public static String addStrings(String num1, String num2) {
        int i = num1.length() - 1, j = num2.length() - 1, add = 0;
        StringBuilder sb = new StringBuilder();
        //位數(shù)不同,補(bǔ)0計(jì)算
        while (i >= 0 || j >= 0 || add != 0) {
            int x = i >= 0 ? num1.charAt(i) - '0' : 0;
            int y = j >= 0 ? num2.charAt(i) - '0' : 0;
            int result = x + y + add;
            //先拼接余數(shù)
            sb.append(result % 10);
            //再計(jì)算是否進(jìn)位
            add = result / 10;
            i--;
            j--;
        }
        sb.reverse();
        return sb.toString();
    }

3. 二進(jìn)制加法

題目

LeetCode67:67. 二進(jìn)制求和 - 力扣(LeetCode)

算法通關(guān)村十三關(guān) | 數(shù)組字符串加法專題,算法通關(guān)村專欄,算法

思路

????????二進(jìn)制加法同上題一樣,只不過進(jìn)位變了,滿2進(jìn)1,同時(shí)也要處理出現(xiàn)首位繼續(xù)向前進(jìn)位的現(xiàn)象,可以用最后在前方拼接進(jìn)位,不進(jìn)位則不用拼接。

代碼

    /**
     * 二進(jìn)制的加法
     * 同字符串加法思想一樣,是滿2進(jìn)1,換種形式寫代碼
     */

    public static String addBinary(String a, String b) {
        StringBuilder sb = new StringBuilder();
        //是否進(jìn)位的變量
        int ca = 0;
        for (int i = a.length() - 1, j = b.length() - 1; i >= 0 || j >= 0; i--, j--) {
            int sum = ca;
            sum += i >= 0 ? a.charAt(i) - '0' : 0;
            sum += j >= 0 ? b.charAt(j) - '0' : 0;
            sb.append(sum % 2);
            ca = sum / 2;
        }
        //處理最后一位
        sb.append(ca == 1 ? ca : "");
        return sb.reverse().toString();
    }

補(bǔ)充:

題目較為簡(jiǎn)單,記住模板即可。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-677232.html

到了這里,關(guān)于算法通關(guān)村十三關(guān) | 數(shù)組字符串加法專題的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • 算法通關(guān)村第十二關(guān)——字符串反轉(zhuǎn)問題解析

    算法通關(guān)村第十二關(guān)——字符串反轉(zhuǎn)問題解析

    字符串反轉(zhuǎn)是關(guān)于字符串算法里的重要問題,雖然不是太難,但需要考慮到一些邊界問題。本篇文章就對(duì)幾道字符串反轉(zhuǎn)題目進(jìn)行分析。 力扣344題,編寫一個(gè)函數(shù),其作用是將輸入的字符串反轉(zhuǎn)過來(lái)。輸入字符串以字符數(shù)組 s 的形式給出。不要給另外的數(shù)組分配額外的空間,

    2024年02月10日
    瀏覽(21)
  • 算法通關(guān)村第十二關(guān)——不簡(jiǎn)單的字符串轉(zhuǎn)換問題

    算法通關(guān)村第十二關(guān)——不簡(jiǎn)單的字符串轉(zhuǎn)換問題

    字符串是我們?cè)谌粘i_發(fā)中最常處理的數(shù)據(jù),雖然它本身不是一種數(shù)據(jù)結(jié)構(gòu),但是由于其可以包含所有信息,所以通常作為數(shù)據(jù)的一種形式出現(xiàn),由于不同語(yǔ)言創(chuàng)建和管理字符串的方式也各有差異,因此針對(duì)不同語(yǔ)言特征又產(chǎn)生了很多問題。 常見的字符串轉(zhuǎn)換題目,也就是在

    2024年02月10日
    瀏覽(24)
  • 【數(shù)據(jù)結(jié)構(gòu)】數(shù)組和字符串(十):稀疏矩陣的鏈接存儲(chǔ):十字鏈表的矩陣操作(加法、乘法、轉(zhuǎn)置)

    【數(shù)據(jù)結(jié)構(gòu)】數(shù)組和字符串(十):稀疏矩陣的鏈接存儲(chǔ):十字鏈表的矩陣操作(加法、乘法、轉(zhuǎn)置)

    【數(shù)據(jù)結(jié)構(gòu)】數(shù)組和字符串(一):矩陣的數(shù)組表示 ??矩陣是以按行優(yōu)先次序?qū)⑺芯仃囋卮娣旁谝粋€(gè)一維數(shù)組中。但是對(duì)于特殊矩陣,如對(duì)稱矩陣、三角矩陣、對(duì)角矩陣和稀疏矩陣等, 如果用這種方式存儲(chǔ),會(huì)出現(xiàn)大量存儲(chǔ)空間存放重復(fù)信息或零元素的情況,這樣會(huì)造

    2024年02月08日
    瀏覽(27)
  • [Go版]算法通關(guān)村第十二關(guān)黃金——字符串沖刺題

    [Go版]算法通關(guān)村第十二關(guān)黃金——字符串沖刺題

    題目鏈接:LeetCode-14. 最長(zhǎng)公共前綴 以第一個(gè)子字符串為標(biāo)準(zhǔn),遍歷其每個(gè)字符時(shí),內(nèi)嵌遍歷其余子字符串的對(duì)應(yīng)字符是否一致。不一致時(shí),則返回當(dāng)前字符之前的子字符串。 復(fù)雜度:時(shí)間復(fù)雜度 O ( n ? m ) O(n*m) O ( n ? m ) 、空間復(fù)雜度 O ( 1 ) O(1) O ( 1 ) 時(shí)間復(fù)雜度:其中 n

    2024年02月12日
    瀏覽(22)
  • [Go版]算法通關(guān)村第十三關(guān)黃金——數(shù)字?jǐn)?shù)學(xué)問題之?dāng)?shù)論問題(最大公約數(shù)、素?cái)?shù)、埃氏篩、丑數(shù))

    [Go版]算法通關(guān)村第十三關(guān)黃金——數(shù)字?jǐn)?shù)學(xué)問題之?dāng)?shù)論問題(最大公約數(shù)、素?cái)?shù)、埃氏篩、丑數(shù))

    題目鏈接:LeetCode-1979. 找出數(shù)組的最大公約數(shù) 輾轉(zhuǎn)相除法其核心部分為:若r 是a ÷ b的余數(shù),則 gcd(a, b)=gcd(b, r) 題目鏈接:LeetCode-204. 計(jì)數(shù)質(zhì)數(shù) 如果 x 是質(zhì)數(shù),那么大于 x 的 x 的倍數(shù) 2x,3x,… 一定不是質(zhì)數(shù)。 時(shí)間復(fù)雜度分析: 外層循環(huán)的迭代次數(shù)是 n-2,即 O ( n ) O(n) O ( n ) 次

    2024年02月11日
    瀏覽(24)
  • [Go版]算法通關(guān)村第三關(guān)青銅——不簡(jiǎn)單的數(shù)組增刪改查

    [Go版]算法通關(guān)村第三關(guān)青銅——不簡(jiǎn)單的數(shù)組增刪改查

    在golang中,切片的底層就是數(shù)組,切片是對(duì)底層數(shù)組的引用,當(dāng)傳遞一個(gè)切片給函數(shù)時(shí),實(shí)際上是傳遞了切片的引用。因此,在函數(shù)內(nèi)部修改切片的內(nèi)容會(huì)影響原始切片。 先聲明并初始化一個(gè)長(zhǎng)度為當(dāng)前切片長(zhǎng)度+1的切片 首部添加:將其余全部向后移動(dòng)一位,然后給首位賦值

    2024年02月13日
    瀏覽(21)
  • 算法通關(guān)村-----數(shù)組實(shí)現(xiàn)加法專題問題解析

    給定一個(gè)由 整數(shù) 組成的 非空 數(shù)組所表示的非負(fù)整數(shù),在該數(shù)的基礎(chǔ)上加一。最高位數(shù)字存放在數(shù)組的首位, 數(shù)組中每個(gè)元素只存儲(chǔ)單個(gè)數(shù)字。你可以假設(shè)除了整數(shù) 0 之外,這個(gè)整數(shù)不會(huì)以零開頭。詳見leetcode66 可以從數(shù)組的末尾,即length-1下標(biāo)處開始向前遍歷,末尾元素?

    2024年02月10日
    瀏覽(18)
  • 【數(shù)據(jù)結(jié)構(gòu)】數(shù)組和字符串(十四):字符串匹配1:樸素的模式匹配算法(StringMatching)

    【數(shù)據(jù)結(jié)構(gòu)】數(shù)組和字符串(十四):字符串匹配1:樸素的模式匹配算法(StringMatching)

    ??字符串(String)是由零個(gè)或多個(gè)字符(char)順序排列組成的有限序列,簡(jiǎn)稱為串。例如 “good morning”就是由12個(gè)字符構(gòu)成的一個(gè)字符串。一般把字符串記作: S = ′ ′ a 0 a 1 … a n ? 1 ′ ′ S=\\\'\\\'a_{0} a_{1}…a_{n-1}\\\'\\\' S = ′′ a 0 ? a 1 ? … a n ? 1 ′′ ? ??其中S是串名,引號(hào)中

    2024年02月05日
    瀏覽(42)
  • 力扣熱門算法題 349. 兩個(gè)數(shù)組的交集,387. 字符串中的第一個(gè)唯一字符,394. 字符串解碼

    力扣熱門算法題 349. 兩個(gè)數(shù)組的交集,387. 字符串中的第一個(gè)唯一字符,394. 字符串解碼

    349. 兩個(gè)數(shù)組的交集,387. 字符串中的第一個(gè)唯一字符,394. 字符串解碼,每題做詳細(xì)思路梳理,配套PythonJava雙語(yǔ)代碼, 2024.04.02?可通過leetcode所有測(cè)試用例。 目錄 349. 兩個(gè)數(shù)組的交集 解題思路 完整代碼 Python Java 387. 字符串中的第一個(gè)唯一字符 解題思路 完整代碼 Python Java

    2024年04月08日
    瀏覽(31)
  • 帶你刷算法——數(shù)組/字符串的完全掌握(一)

    帶你刷算法——數(shù)組/字符串的完全掌握(一)

    「作者主頁(yè)」 :雪碧有白泡泡 「?jìng)€(gè)人網(wǎng)站」 :雪碧的個(gè)人網(wǎng)站 「推薦專欄」 : ★ java一站式服務(wù) ★ ★ 前端炫酷代碼分享 ★ ★ uniapp-從構(gòu)建到提升 ★ ★ 從0到英雄,vue成神之路 ★ ★ 解決算法,一個(gè)專欄就夠了 ★ ★ 架構(gòu)咱們從0說 ★ ★ 數(shù)據(jù)流通的精妙之道★ 給你兩個(gè)

    2024年02月13日
    瀏覽(24)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包