当前位置:编程学习 > C/C++ >>

Plus One

Question:
Given a number represented as an array of digits, plus one to the number.
 
Anwser 1:  szie  ->  0
[cpp]  
class Solution {  
public:  
    vector<int> plusOne(vector<int> &digits) {  
        // Start typing your C/C++ solution below  
        // DO NOT write int main() function  
        vector<int> result(digits);  
          
        int carry = 1;  
        int size = digits.size();  
          
        for(int i = size - 1; i >= 0 ; i--){  
            int tmp = result[i] + carry;  
            result[i] = tmp % 10;  
            carry = tmp / 10;  
        }  
          
        if(carry > 0){  
            result.insert(result.begin(), carry);  
        }  
          
        return result;  
    }  
};  
 
 
Anwser 2:  0  ->  szie
[cpp]  
class Solution {  
public:  
    vector<int> plusOne(vector<int> &digits) {  
        // Start typing your C/C++ solution below  
        // DO NOT write int main() function  
        vector<int> result(digits);  
        reverse(result.begin(), result.end());  
          
        int carry = 1;  
        int size = digits.size();  
          
        for(int i = 0; i < size; i++){  
            int tmp = result[i] + carry;  
            result[i] = tmp % 10;  
            carry = tmp / 10;  
        }  
          
        if(carry == 1){  
            result.push_back(carry);  
        }  
          
        reverse(result.begin(), result.end());  
          
        return result;  
    }  
};  
 
 
 
参考推荐:
leetcode.com
cplusplus vector
补充:软件开发 , C++ ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,