조컴퓨터

66. Plus One 본문

LeetCode/Algorithms

66. Plus One

챠오위 2021. 11. 2. 00:32

 

1) digits[n]*1 + digits[n-1]*10 + digits[n-2]*100 + ... + digits[0]*10^n + 1 

class Solution {
    public int[] plusOne(int[] digits) {
        int cnt = digits.length;
        int sum = 1;
        
        for( int i=cnt-1; i>=0; i--) {
            sum += digits[i]*10^{(cnt-1)-i};
        }
        
        //charAt 으로 한 개씩 잘라서 배열하면 된다~~
        
    }
}

 

2)

i) digits[n] = 1, 2, 3, ... , 8 일 때, 

  digits[n] = 2, 3, 4, ... , 9 대입

ii) digits[n] = 9 일 때,

   digits[n] = 0 대입한 후 digits[n-1] = n의 값 + 1(단, n은 서로 다른 정수)

   digits[n-1] = 9 일 때, digits[n-1] = 0 대입한 후 digits[n-2] = n의 값 + 1(단, n은 서로 다른 정수)

   ... 

   digits[1] = 9 일 때, digits[1] = 0 대입한 후 digits[0] = n의 값 +1 (단, n은 정수)

 * 이 때의 n의 값은 digits.length + 1

 

class Solution {
    public int[] plusOne(int[] digits) {
        int cnt = digits.length;
        
        for( int i=cnt-1; i>=0; i-- ) {
            if( digits[i] != 9 ) {
                digits[i]++;
                return digits;
            } else if( digits[i] == 9 ) {
                digits[i] = 0;
                //digits[i+1] += 1;
            }
        }
        int[] newDigits = new int[cnt+1];
        newDigits[0] = 1;
        return newDigits;
    }
}

 

 

 

 

'LeetCode > Algorithms' 카테고리의 다른 글

*67. Add Binary  (0) 2021.11.02
58. Length of Last Word  (0) 2021.10.28
53. Maximum Subarray  (0) 2021.10.27
35. Search Insert Position  (0) 2021.10.20
28. Implement strStr()  (0) 2021.10.20