Given a number represented as an array of digits, plus one to the number.
水题,练手感。
class Solution {
public:
vector<int> plusOne(vector<int> &digits) {
int *a = new int[digits.size()+1];
memset(a, 0, digits.size()+1);
int ret = 1, cur = 0;
for (int i = digits.size() -1 ; i >= 0; i--) {
if (digits[i] + ret == 10) a[cur++] = 0, ret = 1;
else {a[cur++] = digits[i]+ret; ret = 0;}
}
if (ret == 1) a[cur++] = 1;
vector<int> res;
cur --;
while (cur >=0) res.push_back(a[cur--]);
return res;
}
};

本文介绍了一种将数组表示的数字加一的算法实现。通过遍历数组从最低位开始处理进位,最终返回结果。该算法适用于整数加法场景。
1428

被折叠的 条评论
为什么被折叠?



