【数组】66. 加一
题目:

解答:
思路:从末位向前逐位模拟十进制加法器,首位进行单独判断。
1 class Solution { 2 public: 3 vector<int> plusOne(vector<int>& digits) 4 { 5 int size = digits.size(); 6 for(int i = size - 1; i >= 0; --i) 7 { 8 if(digits[i] < 9) // 第一位小于9,直接相加返回。 9 { 10 ++digits[i]; 11 return digits; 12 } 13 if(i == 0) 14 { 15 digits[i] = 1; // 如果首位也产生了进位, 才会执行这条语句,否则循环中已经return了。 16 digits.push_back(0); 17 } 18 else 19 { 20 digits[i] = 0; // 进位。 21 } 22 } 23 return digits; 24 } 25 26 };

浙公网安备 33010602011771号