刚开始还想把数组转成对应整数后加一,在取出每一位再转置,结果溢出了。而且题目看,这个数居然有100位,显然转成数字不太现实。下面是一种解题思路:
写成代码如下:
vector plusOne(vector& digits) {
vector res = digits;
size_t cur = res.size() - 1;
while (1)
{
if (res[cur] + 1 == 10)
{
res[cur] = 0;
if(cur==0)
{
res[cur] = 0;
res.insert(res.begin(), 1);
return res;
}
cur--;
}
else
{
res[cur]++;
break;
}
}
return res;
}