Contexte
Les deltas d'un tableau d'entiers sont le tableau formé en obtenant les différences d'éléments consécutifs. Par exemple, [1, 2, 4, 7, 3, 9, 6]
a les deltas suivantes: [1, 2, 3, -4, 6, -3]
.
Nous allons maintenant définir les deltas d'une matrice d'entiers comme les deltas de chaque ligne et de chaque colonne qu'elle contient.
Par exemple:
Row deltas:
1 2 3 4 │ => [1, 1, 1]
4 5 6 7 │ => [1, 1, 1]
7 1 8 2 │ => [-6, 7, -6]
Column deltas (the matrix' columns have been rotated into rows for simplicity):
1 4 7 │ => [3, 3]
2 5 1 │ => [3, -4]
3 6 8 │ => [3, 2]
4 7 2 │ => [3, -5]
Ce qui nous donne la liste suivante de deltas matriciels:
[[1, 1, 1], [1, 1, 1], [-6, 7, -6], [3, 3], [3, -4], [3, 2], [3, -5]]
Et comme nous ne voulons pas qu'ils soient imbriqués, nous aplatissons cette liste:
[1, 1, 1, 1, 1, 1, -6, 7, -6, 3, 3, 3, -4, 3, 2, 3, -5]
Tâche
Votre tâche consiste à additionner tous les deltas d'une matrice donnée en entrée. Notez que la matrice ne sera composée que d'entiers non négatifs.
Règles
Toutes les règles standard s'appliquent.
Vous pouvez supposer que la matrice contient au moins deux valeurs sur chaque ligne et colonne, la taille minimale sera donc 2x2 .
Vous pouvez prendre la matrice dans n'importe quel format raisonnable, tant que vous le spécifiez.
Vous ne pouvez pas supposer que la matrice est carrée.
Si cela peut vous aider à réduire votre nombre d'octets, vous pouvez également prendre en option le nombre de lignes et le nombre de colonnes (vous regarde C!).
Il s'agit de code-golf, donc le code le plus court (en octets), dans chaque langue, gagne!
Cas de test
Entrée => Sortie [[1, 2], [1, 2]] => 2 [[8, 7, 1], [4, 1, 3], [5, 5, 5]] => -9 [[1, 2, 3], [4, 5, 6], [7, 8, 9]] => 24 [[9, 9, 9, 9, 9], [9, 9, 9, 9, 9]] => 0 [[1, 3, 14], [56, 89, 20], [99, 99, 99]] => 256 [[1, 2, 3, 4], [4, 5, 6, 7], [7, 1, 8, 2]] => 9 [[13, 19, 478], [0, 12, 4], [45, 3, 6], [1, 2, 3]] => -72
ṁ
.