66. Plus One

LeetCode easy original: C# #array #csharp #easy #leetcode
Le texte du problème est traduit du russe pour la langue sélectionnée. Le code reste inchangé.

Вам given большое number, представленное в виде tableauа целых чисел digits, где каждый element digits[i] — это i-я цифра числа. Цифры расположены в порядке от старшей к младшей слева направо. Большое number не содержит ведущих нулей.

Увеличьте большое number на один и return результирующий tableau цифр.

Exemple:

Input: digits = [1,2,3]

Output: [1,2,4]

Explanation: The array represents the integer 123.

Incrementing by one gives 123 + 1 = 124.

Thus, the result should be [1,2,4].

C# solution

correspondant/original
public class Solution {
    public int[] PlusOne(int[] digits) {
        int n = digits.Length;
        for (int idx = n - 1; idx >= 0; --idx) {
            if (digits[idx] == 9) {
                digits[idx] = 0;
            } else {
                digits[idx]++;
                return digits;
            }
        }
        int[] newDigits = new int[n + 1];
        newDigits[0] = 1;
        return newDigits;
    }
}

C++ solution

brouillon automatique, à relire avant soumission
#include <bits/stdc++.h>
using namespace std;

// Auto-generated C++ draft from the C# solution. Review containers, LINQ and helper types before submit.
class Solution {
public:
    public vector<int>& PlusOne(vector<int>& digits) {
        int n = digits.size();
        for (int idx = n - 1; idx >= 0; --idx) {
            if (digits[idx] == 9) {
                digits[idx] = 0;
            } else {
                digits[idx]++;
                return digits;
            }
        }
        vector<int>& newDigits = new int[n + 1];
        newDigits[0] = 1;
        return newDigits;
    }
}

Java solution

correspondant/original
class Solution {
    public int[] plusOne(int[] digits) {
        int n = digits.length;

        for (int idx = n - 1; idx >= 0; --idx) {
            if (digits[idx] == 9) {
                digits[idx] = 0;
            } else {
                digits[idx]++;
                return digits;
            }
        }

        digits = new int[n + 1];
        digits[0] = 1;
        return digits;
    }
}

JavaScript solution

correspondant/original
var plusOne = function (digits) {
    let n = digits.length;
    for (let i = n - 1; i >= 0; --i) {
        if (digits[i] == 9) {
            digits[i] = 0;
        } else {
            digits[i]++;
            return digits;
        }
    }
    digits.unshift(1);
    return digits;
};

Python solution

correspondant/original
class Solution:
    def plusOne(self, digits: List[int]) -> List[int]:
        n = len(digits)
        for i in range(n):
            idx = n - 1 - i
            if digits[idx] == 9:
                digits[idx] = 0
            else:
                digits[idx] += 1
                return digits
        return [1] + digits

Go solution

correspondant/original
func plusOne(digits []int) []int {
    n := len(digits)
    for i := n - 1; i >= 0; i-- {
        if digits[i] == 9 {
            digits[i] = 0
        } else {
            digits[i]++
            return digits
        }
    }
    digits = append([]int{1}, digits...)
    return digits
}

Algorithm

1️⃣

Проходим по Entréeному tableauу, начиная с конца tableauа.

2️⃣

Устанавливаем все девятки на конце tableauа в ноль. Если мы встречаем цифру, не равную девяти, увеличиваем её на один. Работа выполнена — возвращаем tableau цифр.

3️⃣

Мы здесь, потому что все цифры были равны девяти. Теперь они все установлены в ноль. Затем мы добавляем цифру 1 в начало остальных цифр и возвращаем результат.

😎

Vacancies for this task

offres actives with overlapping task tags are affichés.

Toutes les offres
Il n'y a pas encore d'offres actives.