go語言題解LeetCode989數(shù)組形式的整數(shù)加法
題目描述
989. 數(shù)組形式的整數(shù)加法 - 力扣(LeetCode)
整數(shù)的 數(shù)組形式 num
是按照從左到右的順序表示其數(shù)字的數(shù)組。
- 例如,對(duì)于 num = 1321 ,數(shù)組形式是 [1,3,2,1] 。
給定 num
,整數(shù)的 數(shù)組形式 ,和整數(shù) k
,返回 整數(shù) num + k
的 數(shù)組形式 。
示例 1:
輸入:num = [1,2,0,0], k = 34 輸出:[1,2,3,4] 解釋:1200 + 34 = 1234
示例 2:
輸入:num = [2,7,4], k = 181 輸出:[4,5,5] 解釋:274 + 181 = 455
示例 3:
輸入:num = [2,1,5], k = 806 輸出:[1,0,2,1] 解釋:215 + 806 = 1021
提示:
1 <= num.length <= 10^4
0 <= num[i] <= 9
num 不包含任何前導(dǎo)零,除了零本身
1 <= k <= 10^4
思路分析
首先把指針定位到數(shù)組末尾,然后用取模和k 的每一位相加,用一個(gè)變量記錄進(jìn)位,為了方便游泳了一個(gè)變量記錄和,最后合并所有數(shù)組;
第一個(gè)循環(huán)是將能夠計(jì)算的位數(shù)都計(jì)算出來
第二個(gè)循環(huán)是解決出現(xiàn)k 的位數(shù)小于數(shù)組長(zhǎng)度的情況
第三個(gè)循環(huán)是解決出現(xiàn)數(shù)組長(zhǎng)度小于位數(shù)的情況
最后判斷是否出現(xiàn)后兩種情況
如k 的位數(shù)更長(zhǎng),則需要把k 剩下的數(shù)加到結(jié)果數(shù)組前面
如還有進(jìn)位,則把進(jìn)位加到結(jié)果數(shù)組前面;所有的加法計(jì)算記得把進(jìn)位加上,不難。
AC 代碼
class Solution { public: vector<int> addToArrayForm(vector<int>& num, int k) { vector<int> ans(num.size()); int index = num.size()-1; int carry = 0; int sum = 0; while(k > 0 && index >= 0){ sum = carry + num[index] + k%10; ans[index] = sum%10; carry = sum/10; k /= 10; index -= 1; } while(index >= 0){ sum = carry + num[index]; ans[index] = sum%10; carry = sum/10; index -= 1; } vector<int> kitem; while(k > 0){ sum = carry + k%10; kitem.emplace_back(sum%10); carry = sum/10; k /= 10; } if(kitem.size() > 0 || carry > 0){ reverse(kitem.begin(), kitem.end()); kitem.insert(kitem.end(), ans.begin(), ans.end()); if(carry > 0){ vector<int> temp(1, carry); temp.insert(temp.end(), kitem.begin(), kitem.end()); return temp; } else{ return kitem; } } return ans; } };
參考
989. 【加法模板】秒殺所有逐位相加 - 數(shù)組形式的整數(shù)加法 - 力扣(LeetCode)
以上就是go語言題解LeetCode989數(shù)組形式的整數(shù)加法的詳細(xì)內(nèi)容,更多關(guān)于go題解數(shù)組形式整數(shù)加法的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Golang標(biāo)準(zhǔn)庫(kù)unsafe源碼解讀
這篇文章主要為大家介紹了Golang標(biāo)準(zhǔn)庫(kù)unsafe源碼解讀,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08詳解Go語言中用 os/exec 執(zhí)行命令的五種方法
這篇文章主要介紹了Go語言中用 os/exec 執(zhí)行命令的五種方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-11-11go語言實(shí)現(xiàn)的memcache協(xié)議服務(wù)的方法
這篇文章主要介紹了go語言實(shí)現(xiàn)的memcache協(xié)議服務(wù)的方法,實(shí)例分析了Go語言使用memcache的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-03-03Go語言標(biāo)準(zhǔn)錯(cuò)誤error全面解析
Go語言中的錯(cuò)誤處理是通過內(nèi)置的error接口來實(shí)現(xiàn)的,其中errorString和wrapError是兩種常見的錯(cuò)誤類型實(shí)現(xiàn)方式,errorString通過errors.New()方法實(shí)現(xiàn),而wrapError則通過fmt.Errorf()方法實(shí)現(xiàn),支持錯(cuò)誤的嵌套和解析2024-10-10Go函數(shù)使用(函數(shù)定義、函數(shù)聲明、函數(shù)調(diào)用等)
本文主要介紹了Go函數(shù)使用,包括函數(shù)定義、函數(shù)聲明、函數(shù)調(diào)用、可變參數(shù)函數(shù)、匿名函數(shù)、遞歸函數(shù)、高階函數(shù)等,感興趣的可以了解一下2023-11-11Golang小數(shù)操作指南之判斷小數(shù)點(diǎn)位數(shù)與四舍五入
這篇文章主要給大家介紹了關(guān)于Golang小數(shù)操作指南之判斷小數(shù)點(diǎn)位數(shù)與四舍五入的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2022-03-03Go語言基礎(chǔ)入門應(yīng)用簡(jiǎn)介及常用命令
這篇文章主要為大家介紹了Go語言基礎(chǔ)入門應(yīng)用簡(jiǎn)介及常用命令,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2021-11-11