go語言題解LeetCode989數(shù)組形式的整數(shù)加法
題目描述
989. 數(shù)組形式的整數(shù)加法 - 力扣(LeetCode)
整數(shù)的 數(shù)組形式 num 是按照從左到右的順序表示其數(shù)字的數(shù)組。
- 例如,對于 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ù)組長度的情況
第三個(gè)循環(huán)是解決出現(xiàn)數(shù)組長度小于位數(shù)的情況
最后判斷是否出現(xiàn)后兩種情況
如k 的位數(shù)更長,則需要把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ù)加法的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
GoLang channel底層代碼實(shí)現(xiàn)詳解
Channel和goroutine的結(jié)合是Go并發(fā)編程的大殺器。而Channel的實(shí)際應(yīng)用也經(jīng)常讓人眼前一亮,通過與select,cancel,timer等結(jié)合,它能實(shí)現(xiàn)各種各樣的功能。接下來,我們就要梳理一下GoLang channel底層代碼實(shí)現(xiàn)2022-10-10
Go語言實(shí)現(xiàn)的一個(gè)簡單Web服務(wù)器
這篇文章主要介紹了Go語言實(shí)現(xiàn)的一個(gè)簡單Web服務(wù)器,本文先是給出一個(gè)使用http包建立的Web服務(wù)器源碼,并對比了其它編程語言,需要的朋友可以參考下2014-10-10
Go語言開發(fā)編程規(guī)范命令風(fēng)格代碼格式
這篇文章主要為大家介紹了Go語言開發(fā)編程規(guī)范命令風(fēng)格代碼格式,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06
解決Golang中g(shù)oroutine執(zhí)行速度的問題
這篇文章主要介紹了解決Golang中g(shù)oroutine執(zhí)行速度的問題,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-05-05
golang使用excelize庫操作excel文件的方法詳解
Excelize是Go語言編寫的用于操作Office Excel文檔基礎(chǔ)庫,基于ECMA-376,ISO/IEC 29500國際標(biāo)準(zhǔn),下面這篇文章主要給大家介紹了關(guān)于golang使用excelize庫操作excel文件的相關(guān)資料,需要的朋友可以參考下2022-11-11

