1. public class Solution {
    2. public int[] plusOne(int[] digits) {
    3. for(int i = digits.length - 1 ; i >= 0 ;i--){
    4. digits[i]++;
    5. //让当前数对10取余数
    6. digits[i] = digits[i] % 10;
    7. //如果对10取余数不为0说明不需要进位,直接返回
    8. //如果为0,说明需要进位,然后再次遍历接着+1(进位)
    9. if(digits[i] != 0){
    10. return digits;
    11. }
    12. }
    13. //如果循环结束了还没返回,说明整个数组需要进位,就是999这种,循环出来变成了000
    14. //所以只需要开一个新数组,在第一位放一个1就行, 999 变 000 ,然后000前面放1 变 1000
    15. digits = new int[digits.length + 1];
    16. digits[0] = 1;
    17. return digits;
    18. }
    19. }