Tutte le sfide
Facile 0 risolte 0% di accettazione

Rendi un Array Non Decrescente

Trova il numero minimo di incrementi necessari affinché ogni valore sia almeno pari al precedente.

Ogni mossa aumenta di 1 un valore dell'array. Rendi l'array non decrescente: ogni valore deve essere maggiore o uguale a quello immediatamente precedente. Non puoi diminuire i valori né riordinarli.

Implementa increasing_array(numbers).

Input

numbers: I valori nell'ordine originale.

Output

Restituisci il numero minimo totale di incrementi unitari.

Vincoli

1 ≤ lunghezza ≤ 200.000. Ogni valore è compreso tra 1 e 1.000.000.000. Usa un risultato con segno a 64 bit.

Esempi

Esempio 1
Input:
numbers = [4, 1, 3]

Output atteso:
expected = 4
Input:
std::vector<long long> numbers = {4, 1, 3};

Output atteso:
long long expected = 4;
Input:
long[] numbers = new long[] {4, 1, 3};

Output atteso:
long expected = 4;

Spiegazione

Porta 1 a 4 con tre mosse e 3 a 4 con una mossa. Il risultato [4, 4, 4] richiede quattro mosse.

Esempio 2
Input:
numbers = [1, 2, 2, 5]

Output atteso:
expected = 0
Input:
std::vector<long long> numbers = {1, 2, 2, 5};

Output atteso:
long long expected = 0;
Input:
long[] numbers = new long[] {1, 2, 2, 5};

Output atteso:
long expected = 0;

Spiegazione

Ogni valore è già almeno pari al valore precedente; valori uguali consecutivi sono ammessi.

Riferimenti

Questa sfida è adattata per CodeUtility. Segui la traccia e i vincoli sopra.

Impara dagli altri

Soluzioni della community

Nessuna soluzione pubblicata. Risolvi questa sfida per condividere la prima.