描述:两个大数相加
package com.jd.leetcodedemo;
/**
* LeetCode第二题(两数相加)
* @author tianchuangxin1
* @date 2019-02-28 20:29
*/
public class LeetCode_2 {
/**
* 计算两数相加(假设整型数组中的每个数>=0,<=9)
*
* 3-2-4 arr1
* 4-2-1 arr2
*
* return 7-4-5
*
* @param arr1
* @param arr2
* @return
*/
public static String getSolution(int[] arr1 ,int[] arr2){
//思路描述,从末位开始相加,得到最大的数组,然后遍历数组每个元素,大于10的前一位加一,当前减10取个位数
String result="";
int forword=0;
int j=arr1.length-1;
int k=arr2.length-1;
for (int i=0;i<Math.max(arr1.length,arr2.length);i++){
int resultInt=0;
if (j>=0){
if (k>=0){
resultInt=arr1[j]+arr2[k]+forword;
if (resultInt>=10){
resultInt=resultInt-10;
forword=1;
}else{
forword=0;
}
result=resultInt+result;
}else {
result=(arr1[j]+forword)+result;
forword=0;
}
}else{
result=(arr2[k]+forword)+result;
forword=0;
}
j--;
k--;
}
return forword==0?result:(forword+result);
}
}
本文介绍了一种解决LeetCode第二题(两数相加)的算法实现,通过遍历两个整型数组并进行逐位相加,处理进位操作,最终返回相加结果的大数字符串表示。

4万+

被折叠的 条评论
为什么被折叠?



