题意:
提供一个数组按位表示一个整数,将这个整数加一并按位存于一个数组,并返回。
举例:
Input: [1,2,3]
Output: [1,2,4]
思路:
STL的使用+逻辑性判断,easy题。
设置一个flag表示进位,初始flag=1。从最后一位开始使其+flag,若此时该位大于9,则变成0且flag置1,否则退出循环。
退出循环后若flag仍然为1,则在头部加一个1.
vector<int> plusOne(vector<int>& digits) {
int flag = 1;
for (auto it = digits.rbegin(); it < digits.rend(); ++it) {
if (flag == 0) break;
if (++(*it) > 9) {
*it = 0;
flag = 1;
}
else
flag = 0;
}
if (flag)
digits.insert(digits.begin(), 1);
return digits;
}