LeetCode 989. 数组形式的整数加法

文章目录

    • 题目
    • 题解

题目

对于非负整数 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. 1 <= A.length <= 10000
  2. 0 <= A[i] <= 9
  3. 0 <= K <= 10000
  4. 如果 A.length > 1,那么 A[0] != 0

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/add-to-array-form-of-integer
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

题解

class Solution {
     
    public List<Integer> addToArrayForm(int[] A, int K) {
     
    	// 返回结果数组
        List<Integer> result = new ArrayList<Integer>();
		// 初始数组长度
		int length = A.length;
		// 从末尾加,加到初始第一位,或者加到K没了,数组下标每次向前挪一位,K每次删除个位(/10的作用)
		for (int i = length - 1;i >= 0 || K > 0;i--, K/=10) {
     
			// 如果数组还没到头
			if (i >= 0) {
     
				// K=当前K+当前下标数组的值
				K += A[i];
			}
			// 求余获取个位
			result.add(K%10);
		}
		// 反转
		Collections.reverse(result);
		return result;
    }
}

4ms 39.9MB
详情参考代码注释,举例说明:
例如数组 A : [ 1 , 0 , 2 , 3 ] A:[1,0,2,3] A:[1,0,2,3] K : 1024 K:1024 K:1024,
第一个for循环是, A : [ 1 , 0 , 2 , ( 3 + 1024 ) % 10 ] A:[1,0,2,(3+1024)\%10] A:[1,0,2,(3+1024)%10],结果为 r e s u l t : [ 7 ] result:[7] result:[7] K : 102 K:102 K:102
第一个for循环是, A : [ 1 , 0 , ( 2 + 102 ) % 10 , 3 ] A:[1,0,(2+102)\%10,3] A:[1,0,(2+102)%10,3],结果为 r e s u l t : [ 7 , 4 ] result:[7,4] result:[7,4] K : 10 K:10 K:10
第一个for循环是, A : [ 1 , ( 0 + 10 ) % 10 , 2 , 3 ] A:[1,(0+10)\%10,2,3] A:[1,(0+10)%10,2,3],结果为 r e s u l t : [ 7 , 4 , 0 ] result:[7,4,0] result:[7,4,0] K : 1 K:1 K:1
第一个for循环是, A : [ ( 1 + 1 ) % 10 , 0 , 2 , 3 ] A:[(1+1)\%10,0,2,3] A:[(1+1)%10,0,2,3],结果为 r e s u l t : [ 7 , 4 , 0 , 2 ] result:[7,4,0,2] result:[7,4,0,2] K : 0 K:0 K:0
K K K不满足 K > 0 K>0 K>0的条件,退出循环。
反转数组,得到结果 r e s u l t : [ 2 , 0 , 4 , 7 ] result:[2,0,4,7] result:[2,0,4,7]


更多题解点击此处
学习交流q群:470464545,大家一起学习进步,CSDN博客:lolly1023

你可能感兴趣的:(LeetCode,leetcode)