---
# System prepended metadata

title: 0066. Plus One
tags: [Leetcode, Add Simulation, FaceBook, Easy]

---

# 0066. Plus One
###### tags: `Leetcode` `Easy` `FaceBook` `Add Simulation`
## 思路
因为有进位只有一种情况，就是当前数字是9，所以其他情况只要当前数字+1就可以return了，所以不需要用之前的方法一位一位加carry (carry一旦是0，就一直都是0了) 
## Code
Java
```java=
class Solution {
    public int[] plusOne(int[] digits) {
        for(int i = digits.length-1;i >= 0;i--){
            if(digits[i]==9){
                digits[i]=0;
            }
            else{
                digits[i]++;
                return digits;
            }
        }
        digits = new int[digits.length+1];
        digits[0] = 1;
        return digits;
    }
}
```
C
```c=
class Solution {
public:
    vector<int> plusOne(vector<int>& digits) {
        digits[digits.size()-1]+=1;
        int digit_pos = digits.size()-1;
        while(digit_pos>=0&&digits[digit_pos]==10){
            if(digit_pos!=0){
                digits[digit_pos]%=10;
                digits[digit_pos-1] += 1;
                digit_pos--;
            }
            else{
                digits[digit_pos]=1;
                digits.push_back(0);
            }
        }
        return digits;
    }
};
```
