内容简介:此题解题思路类似
前言
Weekly Contest 123 的 数组形式的整数加法 :
对于非负整数 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官方也有此题的 解答 。需要注意的是需要先将两个入参转换成链表后,按照两数相加的解题步骤处理即可。
实现代码
/**
* 989. 数组形式的整数加法
* @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转成链表
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转换成链表
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;//进位
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则进位
carry=num/10;
num=num%10;
}else{
carry=0;
}
//头插法,将每一位的运算放在数组首位
result.add(0,num);
}
if(carry>0){//最后一位是否存在进位
result.add(0,carry);
}
return result;
}
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- LeetCode每日一题: 数组形式的整数加法(No.989)
- JS 加法知多少?
- JavaScript中的加法运算
- 使用 Lisp 简单描述加法运算
- 使用 Lisp 简单描述加法运算
- 蓝桥杯 ADV-121 算法提高 高精度加法
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Learning JavaScript
Shelley Powers / Oreilly & Associates Inc / 2006-10-17 / $29.99
As web browsers have become more capable and standards compliant, JavaScript has grown in prominence. JavaScript lets designers add sparkle and life to web pages, while more complex JavaScript has led......一起来看看 《Learning JavaScript》 这本书的介绍吧!