05AB1E , 13 12 byte
ÝI<ãʒ.øDŸQ}g
Provalo online!
Mentre la maggior parte delle risposte utilizza una formula o una relazione di ricorrenza, questo è un semplice approccio di conteggio.
Ogni possibile percorso attraverso la griglia è rappresentato dall'elenco delle sue coordinate y. Per n segmenti, ci sono un totale di (n + 1) punti, ma il primo e l'ultimo sono necessariamente 0, quindi lascia (n-1) punti da specificare.
Ý # range [0..n]
I< # n - 1
ã # cartesian power
Ora abbiamo un elenco di percorsi (non ancora compreso lo 0 iniziale e finale). Per costruzione, nessuno di loro scende mai sotto lo 0. Tuttavia, alcuni di essi hanno pendenze illegali (es. Salta da 0 a 2), quindi dobbiamo filtrarli.
ʒ }g # count how many paths satistfy the following condition
0.ø # surround with 0
Q # is equal to
DŸ # its own fluctuating range
Ÿè la gamma fluttuante integrata. Se c'è una coppia di numeri non adiacenti, riempirà i numeri mancanti (ad es. [0, 2] diventa [0, 1, 2]). Solo i percorsi legali rimarranno invariati.
Un modo forse più intuitivo per verificare la presenza di pendenze illegali sarebbe üαà(affermare che il massimo delle differenze assolute a coppie è uguale a 1). Tuttavia, questo manca il percorso flat [0, 0, ... 0], che costa un byte extra da correggere.
Infine, si noti che il codice effettivo utilizza .ødove viene utilizzata questa spiegazione 0.ø. Invece di circondare il percorso con 0, questo circonda l'input implicito con due copie del percorso. In questo modo il sistema di coordinate viene capovolto e rovesciato, ma per il resto è equivalente.