LeetCode简单题之数组形式的整数加法
生活随笔
收集整理的這篇文章主要介紹了
LeetCode简单题之数组形式的整数加法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目
對于非負整數 X 而言,X 的數組形式是每位數字按從左到右的順序形成的數組。例如,如果 X = 1231,那么其數組形式為 [1,2,3,1]。
給定非負整數 X 的數組形式 A,返回整數 X+K 的數組形式。
示例 1:
輸入:A = [1,2,0,0], K = 34
輸出:[1,2,3,4]
解釋:1200 + 34 = 1234
示例 2:
輸入:A = [2,7,4], K = 181
輸出:[4,5,5]
解釋:274 + 181 = 455
示例 3:
輸入:A = [2,1,5], K = 806
輸出:[1,0,2,1]
解釋:215 + 806 = 1021
示例 4:
輸入:A = [9,9,9,9,9,9,9,9,9,9], K = 1
輸出:[1,0,0,0,0,0,0,0,0,0,0]
解釋:9999999999 + 1 = 10000000000
提示:
1 <= A.length <= 10000
0 <= A[i] <= 9
0 <= K <= 10000
如果 A.length > 1,那么 A[0] != 0
來源:力扣(LeetCode)
解題思路
??這個題乍一看十分簡單,可以直接轉換掉數組然后再轉換回來。
class Solution:def addToArrayForm(self, num: List[int], k: int) -> List[int]:p=0s=0for i in num[::-1]:s+=i*10**pp+=1s+=ktemp=list(str(s))for i in range(len(temp)):temp[i]=int(temp[i])return temp
??但是這樣做會導致開銷變大,耗費時間。所以對于這種加法題還是老老實實模擬的好。
class Solution:def addToArrayForm(self, num: List[int], k: int) -> List[int]:k=str(k)n1=len(num)n2=len(k)#補齊‘0’if n1>n2:k='0'*(n1-n2)+kelse:for i in range(n2-n1):num.insert(0,0)flag=0 #進位標志for i in range(len(k))[::-1]:if num[i]+int(k[i])+flag<10:num[i]=num[i]+int(k[i])+flagflag=0else:num[i]=(num[i]+int(k[i])+flag)%10flag=1if flag==1:num.insert(0,1)return num
總結
以上是生活随笔為你收集整理的LeetCode简单题之数组形式的整数加法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode简单题之两个列表的最小索
- 下一篇: LeetCode简单题之棒球比赛