Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

989. 数组形式的整数加法 #95

Open
yankewei opened this issue Jan 22, 2021 · 1 comment
Open

989. 数组形式的整数加法 #95

yankewei opened this issue Jan 22, 2021 · 1 comment
Labels
数组 题目类型为数组 简单 题目难度为简单

Comments

@yankewei
Copy link
Owner

对于非负整数 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)
链接:https://leetcode-cn.com/problems/add-to-array-form-of-integer
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

@yankewei yankewei added 简单 题目难度为简单 数组 题目类型为数组 labels Jan 22, 2021
@yankewei
Copy link
Owner Author

模拟

func addToArrayForm(A []int, K int) []int {
    var kSlice []int
    for K > 9 {
	kSlice = append(kSlice, K%10)
	K /= 10
    }
    kSlice = append(kSlice, K)
    kSlice = reverse(kSlice)
    var ret []int
    temp := 0
    for i,j := len(A)-1,len(kSlice)-1; i >= 0 || j >= 0; i, j = i-1, j-1 {
	add := temp
	if i >= 0 {
	    add += A[i]
	}
	if j >= 0 {
	    add += kSlice[j]
	}
	if add > 9 {
	    temp = 1
	    add = add-10
	} else {
	    temp = 0
	}
	ret = append(ret, add)
    }
    if temp == 1 {
	ret = append(ret, temp)
    }
    return reverse(ret)
}

func reverse(slice []int) []int {
    for left, right := 0, len(slice)-1; left < right; left, right = left+1, right-1 {
	slice[left], slice[right] = slice[right], slice[left]
    }
    return slice
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
数组 题目类型为数组 简单 题目难度为简单
Projects
None yet
Development

No branches or pull requests

1 participant