天天看點

LeetCode算法題之Plus One

問題描述:

一個整數按位存儲于一個vector中,排列順序為:最高位在array[0] ,最低位在[n-1]。

解題思路:

從數組的最後一位開始加1,諸如999的數字加1後需要考慮進位。

class Solution {
public:
   vector<int> plusOne(vector<int>& digits)
   {
       vector<int> result;
       if(digits.size()==)
           return result;
       int carry=;
       for(int j=digits.size()-; j>=; j--)
       {
           int v=carry;
           result.push_back((v+digits[j])%);
           carry = (v+digits[j])/;
           if(j== && carry == )
               result.push_back();
       }
       for(size_t i=; i<result.size()/; i++)
       {
           int t = result[i];
           result[i] = result[result.size()-i-];
           result[result.size()-i-] = t;
       }
       return result;
   }
};