给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。
最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。
你可以假设除了整数 0 之外,这个整数不会以零开头。
class Solution {
public:
vector<int> plusOne(vector<int>& digits) {
int length = digits.size();
for (int i = length - 1; i >= 0; i--)
{
digits[i]++; /*拿出数组的最后一位加一*/
if (digits[i] == 10)/*假如最后一个元素加一之后是10,就给这一个元素置为0,等这遍循环结束之后,就会给他的前一位进一*/
{
digits[i] = 0;
}
else /*如果拿到的元素加一之后不是10 就可以将数组返回*/
{
return digits;
}
}
digits.insert(digits.begin(), 1);/*假如数组的每一个元素都是9 才会走到这一步,给首位前边添加一个1*/
return digits;
}
};
int main()
{
Solution s;
vector<int> arr = { 1,2,3,9,9 };
vector<int>p = s.plusOne(arr);
for (int i = 0; i < p.size(); i++)
{
printf("%d ", p[i]);
}
printf("\n");
return 0;
}
版权声明:本文为Zhang_Ting0020原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。