989-数组形式的整数加法
生活随笔
收集整理的這篇文章主要介紹了
989-数组形式的整数加法
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
前言
Weekly Contest 123的 數(shù)組形式的整數(shù)加法:
對(duì)于非負(fù)整數(shù) X 而言,X 的數(shù)組形式是每位數(shù)字按從左到右的順序形成的數(shù)組。例如,如果 X = 1231,那么其數(shù)組形式為 [1,2,3,1]。
給定非負(fù)整數(shù) X 的數(shù)組形式 A,返回整數(shù) X+K 的數(shù)組形式。
示例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提示:
解題思路
此題解題思路類似兩數(shù)相加,而且leetcode官方也有此題的解答。需要注意的是需要先將兩個(gè)入?yún)⑥D(zhuǎn)換成鏈表后,按照兩數(shù)相加的解題步驟處理即可。
實(shí)現(xiàn)代碼
/*** 989. 數(shù)組形式的整數(shù)加法* @param A* @param K* @return*/public List<Integer> addToArrayForm(int[] A, int K) {List<Integer> result=new ArrayList<>();char[] chars=String.valueOf(K).toCharArray();int times=chars.length>A.length?chars.length:A.length;//將K轉(zhuǎn)成鏈表List<Integer> kList=new LinkedList<>();for(int i=0;i<chars.length;i++){kList.add(Integer.valueOf(String.valueOf(chars[i])));}while(kList.size()<times){((LinkedList<Integer>) kList).addFirst(0);}//將A轉(zhuǎn)換成鏈表List<Integer> aList=new LinkedList<>();for(int i=0;i<A.length;i++){aList.add(A[i]);}while(aList.size()<times){((LinkedList<Integer>) aList).addFirst(0);}int carry=0;//進(jìn)位for(int i=times-1;i>=0;i--){//逆序遍歷鏈表int k=kList.get(i);int a= aList.get(i);int num=k+a+carry;if(num>=10){//相加大于0則進(jìn)位carry=num/10;num=num%10;}else{carry=0;}//頭插法,將每一位的運(yùn)算放在數(shù)組首位result.add(0,num);}if(carry>0){//最后一位是否存在進(jìn)位result.add(0,carry);}return result;}總結(jié)
以上是生活随笔為你收集整理的989-数组形式的整数加法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Spring Cloud Gateway
- 下一篇: 02基于python玩转人工智能最火框架