LeetCode 66 加一[数学] HERODING的LeetCode之路

Posted HERODING23

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode 66 加一[数学] HERODING的LeetCode之路相关的知识,希望对你有一定的参考价值。


解题思路:
一道看似麻烦,其实很简单的数学题,如果你陷入了加一进位的误区,想着不断试探是否可以进位,进位了下一位再如何的问题,那就麻烦了,你只需想到最后一个不为9的数,那么将其加一,后面的全部变成0即可,问题就轻松化解了,至于全是9的情况,你只需要重新构建一个vector,长度为之前的+1,第一位为1即可,代码如下:

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

以上是关于LeetCode 66 加一[数学] HERODING的LeetCode之路的主要内容,如果未能解决你的问题,请参考以下文章

leetcode-66-加一

[leetcode] 66. 加一

LeetCode 第66题,加一

leetcode-----66. 加一

[leetcode]66. Plus One加一

LeetCode66.加一