本文最后更新于:2022年6月20日 晚上
题目:
给出用数字数组表示的一个非负整数,请对该整数加1。
输入:
[1,2,3]
输出:
[1,2,4]
题意:给一个数组,一个数组整体代表一个数字,然后对该数字+1,也就是对数组的最后一个元素+1,其中涉及到了进位的处理。
核心代码模式
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| class Solution { public:
vector<int> plusOne(vector<int>& digits) { int num = 1; int carry = num; for (int i = digits.size() - 1; i >= 0; i--) { digits[i] += carry; carry = digits[i] / 10; digits[i] = digits[i] % 10; } if (carry == 1) digits.insert(digits.begin(), 1); return digits; } };
|
ACM模式
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| #include<bits/stdc++.h> using namespace std; typedef long long LL;
int main() { vector<int> digits; int n; cin >> n; for(int i = 0; i < n; i++) { int x; cin >> x; digits.push_back(x); } int num = 1; int carry = num; for (int i = digits.size() - 1; i >= 0; i--) { digits[i] += carry; carry = digits[i] / 10; digits[i] = digits[i] % 10; } if (carry == 1) digits.insert(digits.begin(), 1);
for(int i = 0; i < digits.size() ; i++) cout << digits[i] << " "; return 0; }
|