讨论/《初级算法》 - 加一/
《初级算法》 - 加一

按照楼一所说,结合自己想法分别列出三种语言的解法:
C++

class Solution {
public:
    vector<int> plusOne(vector<int>& digits) {
        int len=digits.size();
        for(int i=digits.size()-1;i>=0;i--){
            if(digits[i]!=9){
                
                digits[i]++;
                return digits;
            }else{
                digits[i]=0;
            }
        }
        
        digits.clear();
        digits.resize(len+1);
        digits[0]=1;
        return digits;
    }
};

Python3

class Solution:
    def plusOne(self, digits: List[int]) -> List[int]:
        lennum=len(digits)
        
        for i in range(lennum-1,-1,-1):
            if digits[i]!=9:
                digits[i]+=1
                return digits
            else:
                digits[i]=0
                
        digits=[0 for x in range(lennum+1)]
        digits[0]=1
        return digits 
            
        return digits

Java

class Solution {
    public int[] plusOne(int[] digits) {
        int len = digits.length;
        for (int i=len-1;i>=0;i--){
            if(digits[i]!=9){
                digits[i]+=1;
                return digits;
            }
            else{
                digits[i]=0;
            }
            
            
        }
        
        digits=new int[len+1];
        digits[0]=1;
        return digits;
    }
}
展开全部 113 讨论