123th LeetCode Weekly Contest Add to Array-Form of Integer
Posted 樱花落舞
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了123th LeetCode Weekly Contest Add to Array-Form of Integer相关的知识,希望对你有一定的参考价值。
For a non-negative integer X
, the array-form of X
is an array of its digits in left to right order. For example, if X = 1231
, then the array form is [1,2,3,1]
.
Given the array-form A
of a non-negative integer X
, return the array-form of the integer X+K
.
Example 1:
Input: A = [1,2,0,0], K = 34
Output: [1,2,3,4]
Explanation: 1200 + 34 = 1234
Example 2:
Input: A = [2,7,4], K = 181
Output: [4,5,5]
Explanation: 274 + 181 = 455
Example 3:
Input: A = [2,1,5], K = 806
Output: [1,0,2,1]
Explanation: 215 + 806 = 1021
Example 4:
Input: A = [9,9,9,9,9,9,9,9,9,9], K = 1
Output: [1,0,0,0,0,0,0,0,0,0,0]
Explanation: 9999999999 + 1 = 10000000000
Note:
1 <= A.length <= 10000
0 <= A[i] <= 9
0 <= K <= 10000
- If
A.length > 1
, thenA[0] != 0
这题肯定有简单解法,写大数加法只是更熟练而已
class Solution { public: vector<int> addToArrayForm(vector<int>& A, int K) { int len = A.size(); int num=0; vector<int>Ve; int a[11000]={0},b[11000]={0},c[11000]={0}; for(int i=len-1;i>=0;i--){ a[num++]=A[i]; //cout<<A[i]<<endl; } int cnt=0; int i; while(K){ b[cnt++]=K%10; K/=10; } //cout<<"B"<<endl; int k=max(len,cnt); for(i=0;i<k;i++) { //cout<<a[i]<<" "<<b[i]<<endl; c[i]=a[i]+b[i]; } for(i=0; i<k; i++){ //cout<<"A1"<<endl; if(c[i]>=10){ c[i+1]+=c[i]/10; c[i]%=10; } //cout<<"A2"<<endl; } if(c[k]==0) k--; for(i=k;i>=0;i--){ Ve.push_back(c[i]); } return Ve; } };
以上是关于123th LeetCode Weekly Contest Add to Array-Form of Integer的主要内容,如果未能解决你的问题,请参考以下文章
118th LeetCode Weekly Contest Pancake Sorting
113th LeetCode Weekly Contest Flip Equivalent Binary Trees
108th LeetCode Weekly Contest Minimum Falling Path Sum
113th LeetCode Weekly Contest Reveal Cards In Increasing Order