Skip to content
This repository has been archived by the owner on Feb 14, 2023. It is now read-only.

66. 加一(简单) - https://leetcode-cn.com/problems/plus-one/submissions/ #10

Open
tailgo opened this issue May 20, 2019 · 2 comments
Labels
金金 Code is life 阿狗 阿狗是帅哥呀

Comments

@tailgo
Copy link
Owner

tailgo commented May 20, 2019

No description provided.

@tailgo
Copy link
Owner Author

tailgo commented May 20, 2019

暴力从后往前遍历
执行用时 : 84 ms, 在Plus One的JavaScript提交中击败了95.89% 的用户
内存消耗 : 33.7 MB, 在Plus One的JavaScript提交中击败了51.67% 的用户

/**
 * @param {number[]} digits
 * @return {number[]}
 */
var plusOne = function(digits) {
    for (var i = digits.length - 1; i >= 0; --i) {
        if (digits[i] + 1 == 10) {
            digits[i] = 0;
        } else {
            digits[i] += 1;
            return digits;
        }
    }
    if (digits[0] == 0) {
        return [1].concat(digits);
    }
};

还有就是递归遍历
执行用时 : 84 ms, 在Plus One的JavaScript提交中击败了95.89% 的用户
内存消耗 : 33.4 MB, 在Plus One的JavaScript提交中击败了92.93% 的用户

/**
 * @param {number[]} digits
 * @return {number[]}
 */
var plusOne = function(digits) {
    function addOne(digit, size) {
        if (size == 0) {
            return [1].concat(digit)
        }
        if (digit[size - 1] + 1 == 10) {
            digit[size - 1] = 0;
            return addOne(digit, size - 1);
        } else {
            digit[size - 1] = digit[size - 1] + 1;
            return digit;
        }
    }
    
    return addOne(digits, digits.length);
};

@tailgo tailgo added the 阿狗 阿狗是帅哥呀 label May 20, 2019
@AmelloAster
Copy link
Collaborator

执行用时 : 72 ms, 在 Plus One 的 JavaScript 提交中击败了 98.90% 的用户
内存消耗 : 34.2 MB, 在 Plus One 的 JavaScript 提交中击败了 5.14% 的用户
进行下一个挑战:

/**
 * @param {number[]} digits
 * @return {number[]}
 */
 var plusOne = function(digits) {
   let len = digits.length
   let right = []
   if (digits.length - 1 >= 0) {
       right = new Array(digits.length - 1).fill(0)
   }
   right.push(1)

   for (let i= len-1; i > -1; i--) {
    //console.log(digits, right, i);
       if (digits[i] + right[i] >= 10 && i) {
            if (i-1 >=0) {right[i-1] = 1}
            digits[i] = (digits[i] + right[i]) % 10
       }
       else {
            digits[i] = (digits[i] + right[i])
       }

       if (i === 0 && digits[i] >= 10) {
            num = digits[i]
            digits[i] = num % 10
            digits.unshift(num/10)
            
        }
       
   }
        return digits
};

@AmelloAster AmelloAster added the 金金 Code is life label May 21, 2019
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
金金 Code is life 阿狗 阿狗是帅哥呀
Projects
None yet
Development

No branches or pull requests

2 participants