Leetcode 66 Plus One STL

题意让大数加1

我的做法是先让个位+1,再倒置digits,然后进位,最后倒置digits,得到答案。

 1 class Solution {
 2 public:
 3     vector<int> plusOne(vector<int> &digits) {
 4         digits[digits.size() -1]++; //个位+1
 5         reverse(digits.begin(),digits.end());//倒置digits
 6         for(vector<int>::size_type i = 0; i < digits.size() - 1; ++i){//除了最高位,进位
 7             if(digits[i] >= 10){
 8                 digits[i] -= 10;
 9                 digits[i+1] ++;
10             }
11         }
12         if(digits[digits.size() - 1] >= 10){//最高位进位
13             digits[digits.size() - 1] -= 10;
14             digits.push_back(1);
15         }
16         reverse(digits.begin(),digits.end());//倒置digits
17         return digits;
18     }
19 };

 

posted @ 2016-03-02 21:55  Breeze0806  阅读(132)  评论(0编辑  收藏  举报