本文共 747 字,大约阅读时间需要 2 分钟。
题目:
Given a non-negative integer represented as a non-empty array of digits, plus one to the integer.
You may assume the integer do not contain any leading zero, except the number 0 itself.
The digits are stored such that the most significant digit is at the head of the list.
思路:给定一个非空vector,保存一串整数,如899则保存为{8,9,9}.且其没有前导0。主要考虑的是当前位为9时,加1时要进位的问题。
代码:
class Solution {public: vector plusOne(vector & digits) { int sized = digits.size();//保存digits的大小 while ((digits[sized - 1] += 1) == 10){//将当前位置+1后的结果赋给digit[sized-1] digits[sized - 1] = 0;//即当前位置为9时,当前位置 置0,并进位 if (0 == (sized - 1)){//如果当前的索引位置已经在最高位数字 digits.insert(digits.begin(), 1);//在最高位前插入一个进位1 break; } sized--;//如果不在最高位,则继续循环+1 } return digits; }};
转载地址:http://knmii.baihongyu.com/