Bootcamp de logique · Leçon 4 sur 5

Motif 4 — Arithmétique d'indices & parcours de matrices

Les grilles ont l'air intimidantes, mais voici le secret : une grille n'est qu'une liste de listes, et la plupart des problèmes de grille se résolvent en réussissant l'arithmétique lignes-et-colonnes — pas par des astuces malignes.

Par Shahriyar · Mis à jour

L'idée, en une ligne

Une grille, ce sont des lignes empilées sur des lignes. Vous atteignez n'importe quelle cellule avec grid[row][col], et tout le travail consiste à choisir quelle ligne et quelle colonne visiter ensuite. C'est l'arithmétique d'indices.

Comment le repérer

L'entrée est une grille 2D, une image, ou une table, et la tâche utilise des mots comme :

Deux faits qui débloquent presque tout

Voyez-le à l'œuvre

▸ try it
grid = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9],
]

# Transpose: cell (r, c) -> (c, r)
def transpose(m):
    return [[m[r][c] for r in range(len(m))] for c in range(len(m[0]))]

# Rotate 90 clockwise = transpose, then reverse each row
def rotate_cw(m):
    return [row[::-1] for row in transpose(m)]

print(rotate_cw(grid))    # [[7,4,1],[8,5,2],[9,6,3]]

# Main diagonal: cells where row == col
print([grid[i][i] for i in range(len(grid))])   # [1, 5, 9]

Lisez-le de haut en bas : la transposition échange chaque (r, c) avec (c, r) ; tourner n'est que cet échange suivi de l'inversion de chaque ligne ; et la diagonale est chaque cellule où le numéro de ligne égale le numéro de colonne.

Avancé — spirales et bugs off-by-one

Les parcours en spirale et de frontière utilisent quatre extrémités mobiles — top, bottom, left, et right — qui se rétrécissent vers l'intérieur après chaque passe. C'est l'idée des deux pointeurs de tout à l'heure, juste en 2D.

Basé sur la doc Python officielle (listes imbriquées / structures de données)

Toutes les leçons de Bootcamp de logique

  1. Motif 1 — Compter la fréquence des choses
  2. Motif 2 — Deux pointeurs
  3. Motif 3 — Fenêtre glissante
  4. Motif 4 — Arithmétique d'indices & parcours de matrices
  5. Les essentiels de la POO — classes, héritage, méthodes magiques, décorateurs