Kacam.net

Algorithmes

单调栈:什么形状的题会塌成它

模板八行,难的是看见一道新题认出它是这个形状。

Copiez la consigne, puis choisissez un modèle. Il joue l'examinateur et vous interroge acte par acte au lieu de vous donner la réponse.

Sur un téléphone où l'application est installée, le système l'ouvre directement. Dans WeChat, les liens n'ouvrent pas les applications externes : ouvrez-le d'abord dans un navigateur.

Le texte copié se termine par le corrigé dont le modèle se sert pour vous évaluer. Ne le lisez pas avant : ce qui compte, c'est de l'avoir déduit vous-même.

能用单调栈的题只有一个形状:对每个元素找左边或右边第一个比它大/小的。所有变体都是这句话的换皮。

这一份的中心是一问:弹出栈顶的那一刻,你同时知道了哪几件事? 说得出三件(被弹的元素、它右边第一个更大的、它左边第一个更大的)就懂了为什么一遍扫描够用。

最后一幕给三道题让你认形状,其中一道故意不是栈。

★★★☆☆ · environ 35 min · Ce qui est évalué : 问题形状的识别、栈里存什么、弹出时的结算、和单调队列的分界

Ce que celle-ci travaille

Choix de structure Analyse amortie Conditions aux bornes

Déjà fait celui-ci ?

Connectez-vous pour noter que vous l'avez fait : la prochaine fois, vous verrez quel jour c'était.

Notes de ceux qui l'ont fait

Personne n'a encore écrit. Une fois terminé, racontez ce qui est sorti de l'échange : quel acte vous a bloqué, quelle conclusion vous avez changée ensuite.

Se connecter pour écrire une note.

Comment s'en servir

Cette série enseigne au lieu d'interroger : elle vous guide au lieu de pousser jusqu'à ce que vous n'ayez plus rien à dire. Quand vous bloquez, elle demande d'abord à quel niveau (jamais entendu parler / je sais mais pas pourquoi / je sais pourquoi mais je n'y arrive pas), puis décide quoi donner. Elle ne donne la réponse qu'après vous avoir guidé deux fois sur le même point — et vous demande ensuite de la redire avec vos mots.

Comment démarrer

  1. Choisissez-en une, ouvrez-la, copiez l'invite.
  2. Collez-la dans une conversation toute neuve, ne dites rien, attendez sa première question.
  3. Déroulez à la main avant d'écrire du code — elle vous interrompra. Dérouler un tableau de longueur 2 vaut mieux qu'écrire le patron dix fois.

Quatre commandes à lancer à tout moment

  • 跳过 passer tout de suite à la scène suivante
  • 换个说法 réexpliquer ce point sous un autre angle
  • 直说吧 donner la réponse complète, puis me la faire redire
  • 复盘 sauter à la conclusion et sortir la fiche de bilan

Trois pièges

  • Ne lisez pas le corrigé de la fin en premier — sa rubrique « erreurs de raisonnement courantes » contient la réponse à chacune des questions.
  • Ne vous jetez pas sur le code. En algorithmique, écrire du code est le meilleur moyen de masquer qu'on n'a pas vraiment réfléchi.
  • Quand elle se met à vous complimenter, renvoyez-la à la règle « ne me complimente pas ». Guider n'est pas cajoler.

Aucune idée de solution ? Commencez par la définition de l'état. Toujours une erreur de borne ? Dichotomie et sommes préfixes. Vous ne reconnaissez pas la forme du problème ? Pile monotone et fenêtre glissante. Celle sur la complexité sert de socle à plusieurs autres : faites-la tôt.