Skip to content

Commit e7aa41e

Browse files
Bruce YangBruce Yang
Bruce Yang
authored and
Bruce Yang
committed
Clean.
1 parent e757739 commit e7aa41e

File tree

3 files changed

+0
-315
lines changed

3 files changed

+0
-315
lines changed

91algo/daily/posts/day29.md

Lines changed: 0 additions & 105 deletions
Original file line numberDiff line numberDiff line change
@@ -1,105 +0,0 @@
1-
# day1 - leetcode989. 数组形式的整数加法[2021-09-10]
2-
3-
## 题目地址(989. 数组形式的整数加法)
4-
5-
[989. 数组形式的整数加法](https://leetcode-cn.com/problems/add-to-array-form-of-integer/)
6-
7-
https://leetcode-cn.com/problems/add-to-array-form-of-integer/
8-
9-
## 入选理由
10-
11-
1. 简单题目,适合大家上手。
12-
2. 之前力扣官方的每日一题,质量比较高
13-
14-
## 题目描述
15-
16-
对于非负整数 `X` 而言,`*X*`*数组形式*是每位数字按从左到右的顺序形成的数组。例如,如果 `X = 1231`,那么其数组形式为 `[1,2,3,1]`
17-
18-
给定非负整数 `X` 的数组形式 `A`,返回整数 `X+K` 的数组形式。
19-
20-
**示例 1:**
21-
22-
输入:A = [1,2,0,0], K = 34 输出:[1,2,3,4] 解释:1200 + 34 = 1234
23-
24-
**示例 2:**
25-
26-
输入:A = [2,7,4], K = 181 输出:[4,5,5] 解释:274 + 181 = 455
27-
28-
**示例 3:**
29-
30-
输入:A = [2,1,5], K = 806 输出:[1,0,2,1] 解释:215 + 806 = 1021
31-
32-
**示例 4:**
33-
34-
输入: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
35-
36-
**提示:**
37-
38-
1. `1 <= A.length <= 10000`
39-
2. `0 <= A[i] <= 9`
40-
3. `0 <= K <= 10000`
41-
4. 如果 `A.length > 1`,那么 `A[0] != 0`
42-
43-
## 难度
44-
45-
- 简单
46-
47-
## 标签
48-
49-
[数组](https://leetcode-cn.com/tag/array/), [数学](https://leetcode-cn.com/tag/math/)
50-
51-
## 前置知识
52-
53-
- 数组的遍历
54-
55-
## 思路
56-
57-
### 双指针 + 进位加法逻辑
58-
59-
双指针, 让两个数的末位对齐, 两个指针 i, j均从各自字符串的末尾开始走。
60-
61-
定义一个数组来存放结果, 一个int值carry来记录每位的进位值, 初始值设为0。
62-
算当前位置的数时, sum = a[i] + b[j] + carry, 每趟都要记得更新carry的值。
63-
64-
循环结束时, 由于低位的数字字符先加到了结果字符串中, 最后还需要 reverse 一次, 让位置恢复正常。
65-
66-
## 代码
67-
68-
### 实现语言: C++
69-
70-
```cpp
71-
class Solution {
72-
public:
73-
vector<int> addToArrayForm(vector<int>& A, int k) {
74-
if (k == 0) return A;
75-
vector<int> res;
76-
int n = A.size();
77-
// 对位相加
78-
int carry = 0;
79-
int sum = 0;
80-
int i = n - 1;
81-
while (k > 0 || i >= 0)
82-
{
83-
sum = carry + (k % 10);
84-
if (i >= 0) // 保证访问A[i]前不越界
85-
sum += A[i];
86-
87-
carry = (sum <= 9) ? 0 : 1;
88-
res.push_back(sum % 10);
89-
k = k / 10;
90-
91-
i--;
92-
}
93-
if (carry == 1) res.push_back(1);
94-
reverse(res.begin(), res.end());
95-
return res;
96-
}
97-
};
98-
```
99-
100-
代码已上传到: [leetcode-ac/91algo - github.com](https://github.com/yanglr/leetcode-ac/tree/master/91algo)
101-
102-
## 复杂度分析
103-
104-
- 时间复杂度:O(max(n, k)),其中 n 为数组长度, k为数K的长度。
105-
- 空间复杂度:O(n), 主要是结果数组用的空间

91algo/daily/posts/day30.md

Lines changed: 0 additions & 105 deletions
Original file line numberDiff line numberDiff line change
@@ -1,105 +0,0 @@
1-
# day1 - leetcode989. 数组形式的整数加法[2021-09-10]
2-
3-
## 题目地址(989. 数组形式的整数加法)
4-
5-
[989. 数组形式的整数加法](https://leetcode-cn.com/problems/add-to-array-form-of-integer/)
6-
7-
https://leetcode-cn.com/problems/add-to-array-form-of-integer/
8-
9-
## 入选理由
10-
11-
1. 简单题目,适合大家上手。
12-
2. 之前力扣官方的每日一题,质量比较高
13-
14-
## 题目描述
15-
16-
对于非负整数 `X` 而言,`*X*`*数组形式*是每位数字按从左到右的顺序形成的数组。例如,如果 `X = 1231`,那么其数组形式为 `[1,2,3,1]`
17-
18-
给定非负整数 `X` 的数组形式 `A`,返回整数 `X+K` 的数组形式。
19-
20-
**示例 1:**
21-
22-
输入:A = [1,2,0,0], K = 34 输出:[1,2,3,4] 解释:1200 + 34 = 1234
23-
24-
**示例 2:**
25-
26-
输入:A = [2,7,4], K = 181 输出:[4,5,5] 解释:274 + 181 = 455
27-
28-
**示例 3:**
29-
30-
输入:A = [2,1,5], K = 806 输出:[1,0,2,1] 解释:215 + 806 = 1021
31-
32-
**示例 4:**
33-
34-
输入: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
35-
36-
**提示:**
37-
38-
1. `1 <= A.length <= 10000`
39-
2. `0 <= A[i] <= 9`
40-
3. `0 <= K <= 10000`
41-
4. 如果 `A.length > 1`,那么 `A[0] != 0`
42-
43-
## 难度
44-
45-
- 简单
46-
47-
## 标签
48-
49-
[数组](https://leetcode-cn.com/tag/array/), [数学](https://leetcode-cn.com/tag/math/)
50-
51-
## 前置知识
52-
53-
- 数组的遍历
54-
55-
## 思路
56-
57-
### 双指针 + 进位加法逻辑
58-
59-
双指针, 让两个数的末位对齐, 两个指针 i, j均从各自字符串的末尾开始走。
60-
61-
定义一个数组来存放结果, 一个int值carry来记录每位的进位值, 初始值设为0。
62-
算当前位置的数时, sum = a[i] + b[j] + carry, 每趟都要记得更新carry的值。
63-
64-
循环结束时, 由于低位的数字字符先加到了结果字符串中, 最后还需要 reverse 一次, 让位置恢复正常。
65-
66-
## 代码
67-
68-
### 实现语言: C++
69-
70-
```cpp
71-
class Solution {
72-
public:
73-
vector<int> addToArrayForm(vector<int>& A, int k) {
74-
if (k == 0) return A;
75-
vector<int> res;
76-
int n = A.size();
77-
// 对位相加
78-
int carry = 0;
79-
int sum = 0;
80-
int i = n - 1;
81-
while (k > 0 || i >= 0)
82-
{
83-
sum = carry + (k % 10);
84-
if (i >= 0) // 保证访问A[i]前不越界
85-
sum += A[i];
86-
87-
carry = (sum <= 9) ? 0 : 1;
88-
res.push_back(sum % 10);
89-
k = k / 10;
90-
91-
i--;
92-
}
93-
if (carry == 1) res.push_back(1);
94-
reverse(res.begin(), res.end());
95-
return res;
96-
}
97-
};
98-
```
99-
100-
代码已上传到: [leetcode-ac/91algo - github.com](https://github.com/yanglr/leetcode-ac/tree/master/91algo)
101-
102-
## 复杂度分析
103-
104-
- 时间复杂度:O(max(n, k)),其中 n 为数组长度, k为数K的长度。
105-
- 空间复杂度:O(n), 主要是结果数组用的空间

91algo/daily/posts/day31.md

Lines changed: 0 additions & 105 deletions
Original file line numberDiff line numberDiff line change
@@ -1,105 +0,0 @@
1-
# day1 - leetcode989. 数组形式的整数加法[2021-09-10]
2-
3-
## 题目地址(989. 数组形式的整数加法)
4-
5-
[989. 数组形式的整数加法](https://leetcode-cn.com/problems/add-to-array-form-of-integer/)
6-
7-
https://leetcode-cn.com/problems/add-to-array-form-of-integer/
8-
9-
## 入选理由
10-
11-
1. 简单题目,适合大家上手。
12-
2. 之前力扣官方的每日一题,质量比较高
13-
14-
## 题目描述
15-
16-
对于非负整数 `X` 而言,`*X*`*数组形式*是每位数字按从左到右的顺序形成的数组。例如,如果 `X = 1231`,那么其数组形式为 `[1,2,3,1]`
17-
18-
给定非负整数 `X` 的数组形式 `A`,返回整数 `X+K` 的数组形式。
19-
20-
**示例 1:**
21-
22-
输入:A = [1,2,0,0], K = 34 输出:[1,2,3,4] 解释:1200 + 34 = 1234
23-
24-
**示例 2:**
25-
26-
输入:A = [2,7,4], K = 181 输出:[4,5,5] 解释:274 + 181 = 455
27-
28-
**示例 3:**
29-
30-
输入:A = [2,1,5], K = 806 输出:[1,0,2,1] 解释:215 + 806 = 1021
31-
32-
**示例 4:**
33-
34-
输入: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
35-
36-
**提示:**
37-
38-
1. `1 <= A.length <= 10000`
39-
2. `0 <= A[i] <= 9`
40-
3. `0 <= K <= 10000`
41-
4. 如果 `A.length > 1`,那么 `A[0] != 0`
42-
43-
## 难度
44-
45-
- 简单
46-
47-
## 标签
48-
49-
[数组](https://leetcode-cn.com/tag/array/), [数学](https://leetcode-cn.com/tag/math/)
50-
51-
## 前置知识
52-
53-
- 数组的遍历
54-
55-
## 思路
56-
57-
### 双指针 + 进位加法逻辑
58-
59-
双指针, 让两个数的末位对齐, 两个指针 i, j均从各自字符串的末尾开始走。
60-
61-
定义一个数组来存放结果, 一个int值carry来记录每位的进位值, 初始值设为0。
62-
算当前位置的数时, sum = a[i] + b[j] + carry, 每趟都要记得更新carry的值。
63-
64-
循环结束时, 由于低位的数字字符先加到了结果字符串中, 最后还需要 reverse 一次, 让位置恢复正常。
65-
66-
## 代码
67-
68-
### 实现语言: C++
69-
70-
```cpp
71-
class Solution {
72-
public:
73-
vector<int> addToArrayForm(vector<int>& A, int k) {
74-
if (k == 0) return A;
75-
vector<int> res;
76-
int n = A.size();
77-
// 对位相加
78-
int carry = 0;
79-
int sum = 0;
80-
int i = n - 1;
81-
while (k > 0 || i >= 0)
82-
{
83-
sum = carry + (k % 10);
84-
if (i >= 0) // 保证访问A[i]前不越界
85-
sum += A[i];
86-
87-
carry = (sum <= 9) ? 0 : 1;
88-
res.push_back(sum % 10);
89-
k = k / 10;
90-
91-
i--;
92-
}
93-
if (carry == 1) res.push_back(1);
94-
reverse(res.begin(), res.end());
95-
return res;
96-
}
97-
};
98-
```
99-
100-
代码已上传到: [leetcode-ac/91algo - github.com](https://github.com/yanglr/leetcode-ac/tree/master/91algo)
101-
102-
## 复杂度分析
103-
104-
- 时间复杂度:O(max(n, k)),其中 n 为数组长度, k为数K的长度。
105-
- 空间复杂度:O(n), 主要是结果数组用的空间

0 commit comments

Comments
 (0)