首頁>技術>

題目

對於非負整數 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 = 1234123

示例 2:

輸入:A = [2,7,4], K = 181輸出:[4,5,5]解釋:274 + 181 = 455123

示例 3:

輸入:A = [2,1,5], K = 806輸出:[1,0,2,1]解釋:215 + 806 = 1021123

示例 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 = 10000000000123

提示:

題解
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;    }}123456789101112131415161718192021

4ms 39.9MB詳情參考程式碼註釋,舉例說明:

例如陣列A : [ 1 , 0 , 2 , 3 ] A:[1,0,2,3]A:[1,0,2,3],K : 1024 K:1024K: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:102K: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:10K: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:1K: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:0K:0K KK不滿足K > 0 K>0K>0的條件,退出迴圈。反轉陣列,得到結果r e s u l t : [ 2 , 0 , 4 , 7 ] result:[2,0,4,7]result:[2,0,4,7]

本文出處:csdn博主lolly1023

8
最新評論
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • SpringCloud簡介與微服務架構