LeetCode题解——Plus One

Given a non-negative number represented as an array of digits, plus one to the number.

The digits are stored such that the most significant digit is at the head of the list.

思路:从尾到头逐位遍历字符串,如果当前字符不为‘9’,那么直接将此字符加1,返回。如果当前字符为‘9’,那么将此字符置为'0',再处理下一位。

若遍历完字符串后,仍没有返回,说明,该字符串为999这样的形式,还需要进一位,那么在字符串首加上字符‘1’。

class Solution {
public:
//特殊输入,digits为空,digits为999,digits为139.
    /*vector<int> plusOne(vector<int>& digits) {
        if(!digits.size()){
            digits.push_back(1);
            return digits;
        } 
        int i = digits.size()-1;
        int takeover = 1; 
        while(i>=0){
            int tempvalue = digits[i]+takeover;
            if(tempvalue<10){
                digits[i] = tempvalue;
                return digits;
            }
            else{
                digits[i] = tempvalue - 10;
            }
            i--;
        }
        digits.push_back(0);
        digits[0] = takeover;
        return digits;
    }*/
    vector<int> plusOne(vector<int>& digits) {
        for(int i =digits.size()-1;i>=0;i--){
            if(digits[i]==9){
                digits[i]=0;
            }
            else{
                digits[i]++;
                return digits;
            }
        }
        digits.push_back(0);
        digits[0]=1;
        return digits;
    }
    
};


你可能感兴趣的:(String,bit,compute)