Kacam.net

Алгоритмы

前缀和能用的前提是可逆

区间和能用它,区间最大值不能 —— 那条界线在哪?

Скопируйте заготовку и выберите модель. Она будет вести себя как интервьюер и разбирать задачу с вами по действиям, а не выкладывать ответ.

ChatGPT Claude DeepSeek 豆包 Kimi Gemini

На телефоне с установленным приложением система откроет само приложение. Внутри WeChat внешние приложения не открываются — сначала откройте ссылку в браузере.

В конце скопированного текста лежит разбор, по которому модель вас оценивает. Не читайте его заранее: ценно именно то, что вы дошли сами.

这东西看起来简单到不值得练,但一多半人说不出它凭什么成立。答案是可逆:加法有减法能撤销,所以能用;max 没有,所以照套就错。

第三幕把差分引出来,它是前缀和的逆运算 —— 前缀和把区间查询变成两次单点访问,差分把区间修改变成两次单点修改。中间要查怎么办?那就是另一个结构的事了。

顺带治两个高频 off-by-one:前缀和数组为什么多留一位、哈希表为什么要先放一个 0。

★★★☆☆ · около 30 мин · Что проверяется: 可逆性这个前提、差分是它的逆、下标偏移、离线

Что тренирует эта

Инварианты Граничные случаи Выбор структуры данных

Делали эту задачу?

Войдите, чтобы отметить, что задача пройдена: в следующий раз будет видно, когда это было.

Заметки тех, кто уже прошёл

Пока никто не написал. После разбора расскажите, что из него вышло: на каком действии вы застряли и какой вывод потом поменяли.

Войти, чтобы написать заметку.

Как этим пользоваться

Эта серия учит, а не допрашивает: она ведёт, а не давит, пока вам нечего станет сказать. Когда вы застряли, она сначала спрашивает, на каком уровне (не слышал / знаю, но не понимаю почему / понимаю, но не могу написать), и только потом решает, что дать. Прямой ответ она даёт лишь после двух попыток вас подвести — и затем просит пересказать своими словами.

С чего начать

  1. Выберите одну, откройте, скопируйте промпт.
  2. Вставьте в совершенно новый пустой диалог, ничего не говорите и ждите первого вопроса.
  3. Сначала разберите руками, потом пишите код — она вас остановит. Пройти массив длины 2 по шагам полезнее, чем десять раз написать шаблон.

Четыре команды, которые можно бросить в любой момент

  • 跳过 сразу к следующей сцене
  • 换个说法 объяснить это место под другим углом
  • 直说吧 дать полный ответ, а потом заставить меня пересказать
  • 复盘 перейти к финалу и выдать карточку разбора

Три ловушки

  • Не читайте ответы в конце заранее — раздел «как обычно ошибаются» и есть ответ на каждый вопрос.
  • Не бросайтесь писать код. В алгоритмах именно написание кода лучше всего прячет то, что вы ещё не продумали.
  • Когда начнёт вас хвалить, напомните про правило «не хвали меня». Вести — не значит нянчить.

Не придумывается решение — начните с определения состояния. Всё время путаете границы — бинарный поиск и префиксные суммы. Не узнаёте форму задачи — монотонный стек и скользящее окно. Карточка про сложность лежит в основе нескольких других: сделайте её пораньше.