LeetCode66——Plus One
意思就是给某个整数在个位上加上1,不过这个整数是以数组形式来体现的(必须这么做,否则有可能越界)
这个题只需要考虑边界条件就很容易把代码写出来:
例如考虑 9999
在个位上加上1,就要不断向高位进位,最后直到超出4位数的范围,并在万位上(第5位)补上1。
对于前四位的操作,只需要不断加1取模即可,对于第五位,则要判断余数是否大于0(是否有第五位)
代码:
class Solution {
public:
vector<int> plusOne(vector<int>& digits) {
int len = digits.size();
int mod;
for (int i = len - 1; i >= 0; i--)
{
digits[i] = (digits[i] + 1);
mod = digits[i] / 10;
if (mod == 0)
break;
digits[i] %= 10;
}
if (mod == 1)
digits.insert(digits.begin(), 1);
return digits;
}
};