View on GitHub

CC

CC practice and cheat sheets

#1148-plus-one

#include <vector>
using namespace std;

class Solution
{
public:
    vector<int> plusOne(vector<int> &digits)
    {
        int carry_over = 0;
        if (digits.size() == 1 && digits[0] == 9)
        {
            return {1, 0};
        }
        digits[digits.size() - 1]++;

        for (int i = digits.size() - 1; i > 0; i--)
        {

            carry_over = digits[i] / 10;
            if (carry_over-- == 1)
            {
                digits[i] = 0;
                digits[i - 1]++;
            }
        }

        if (digits[0] == 10)
        {
            digits[0] = 1;
            digits.push_back(0);
        }
        return digits;
    }
};

A silly solution

function plusOne(digits: number[]): number[] {
    let d = digits.map( i => String(i));
    let x = BigInt(d.join(''));
    ++x;
    return x.toString().split('').map(i => parseInt(i))
};