Почему вообще в задаче на длиннейшую подстроку с каким-то свойством возникает окно? Потому что свойство "наследуемое" - если оно выполняется для какой-то строки, то и для всех в нее вложенных - тоже
Наследуемое оно в данной конкретной ситуации, но не в общем случае (например, "найти самую длинную подстроку, в которой К различных символов" - тоже окно), потому, имхо, лучше не упоминать.
Пример для параграфа о собственных тайпгардах не очень удачный - там discriminated union и всё работает "из коробки":
if (result.status === 'success') {
// Здесь TS точно знает, что это PaymentSuccess
console.log(`Успешно! ID: ${result.transactionId}`);
} else {
// А здесь TS понимает, что остался только PaymentFailed
console.error(`Ошибка: ${result.errorMessage}`);
}
причем даже для filter: results.filter(r => r.status === 'success') - массив PaymentSuccess, тут ts сам увидел тайпгард
Раз уж в статье про разворот списка совершенно неожиданно (судя по всему, не только для меня) разворачивают массив, то вот знаменитый js-кодогольф на тему сабжа:
Кем классифицируется и как обосновано? Такая версия (про "самодержца") выгодна РФ-ным пропагандистам, потому что все эти 26 лет президент гораздо лучше продается электорату, чем стоящая за ним партия, каждый раз под тем соусом, что "вот сейчас-то он начнет закручивать гайки против всяких воров". Уверен, что у верхушки предусмотрена очередная операция "преемник", чтобы продолжалась их сытая жизнь.
Тоже удаляли аденойды, два раза. Второй раз - мне было год и 8 мес., это самое раннее что запомнил из детства 😂 Даже помню перед процедурой, как сижу на диванчике в коридоре с мыслью: "обычное унылое посещение больницы" - такой подставы я разумеется не ожидал )) Можете называть меня психом, но теперь от того эпизода осталось только чувство ностальгии ))
И даже если вот прямо с понедельника все программисты, юристы, логисты и бухгалтеры останутся без работы, весь остальной мир будет выглядеть, как и прежде.
Очень надеюсь, что к тому моменту, как ИИ заменит чисто интеллектуальный труд, подоспеет и робототехника. По мне, так лучше тотальный коллапс, чем оказаться в горстке неудачников.
Ну и конечно использование реального стека в вашем коде не выглядит супер-эффективным - вместо этого поштучного "попанья" надо использовать обычный массив с указателем на "верхушку" и двоичным поиском находить куда вставляется очередной элемент и "переключается" указатель.
Навскидку (могу ошибаться) это не позволит существенно уменьшить количество сравнений. Стек будет большим после долгих монотонных отрезков массива, на таких отрезках у нас одно сравнение на итерацию. Выигрыш достигается, когда монотонность меняется в обратную сторону, причем каждая итерация скидывает со стека сразу много значений. Но таких итераций будет сравнительно мало. А если скидывается понемногу, то там нет особого бонуса от двоичного поиска. В общем, надо смотреть конкретные кейсы и проверять на практике.
в Biocad мне показывали задачку которая хитроумным образом сводится к перемножению с помощью БПФ
Между БПФ и монотонным стеком - пропасть по сложности (если БПФ надо было запилить вручную). Ваш кейс действительно очень редкий, а вот поймать сабж на алгосекции вполне реально.
Сейчас идет много инфы о том, что после подписания контракта, подписавший весьма вероятно может огрести кучу проблем. Причем не только от оппозиции, но и от самих зетников (жанр называется "z-нытье"). Одна из задач единоросов - прикрыть эту инфу, иначе у них закончатся "любители многомиллионных выплат".
Поэтому стараются забанить всё независимое, где могут быть неподконтрольные каналы.
Это если словарь сделан не как хэш-мап, а на основе дерева. Например, std::map.
Слышал, на сво запретили использовать мах для связи, типа, ненадёжный
То есть каждая задача с наибольшей подстрокой и окном сводится к "наследуемой"?
Наследуемое оно в данной конкретной ситуации, но не в общем случае (например, "найти самую длинную подстроку, в которой К различных символов" - тоже окно), потому, имхо, лучше не упоминать.
История, нашумевшая в своё время - https://habr.com/ru/articles/345756/
Пример для параграфа о собственных тайпгардах не очень удачный - там discriminated union и всё работает "из коробки":
причем даже для filter:
results.filter(r => r.status === 'success')- массив PaymentSuccess, тут ts сам увидел тайпгардЭто задача, на которую однажды намотали автора homebrew?
Раз уж в статье про разворот списка совершенно неожиданно (судя по всему, не только для меня) разворачивают массив, то вот знаменитый js-кодогольф на тему сабжа:
Иммутабельно, за O(n)
Кем классифицируется и как обосновано? Такая версия (про "самодержца") выгодна РФ-ным пропагандистам, потому что все эти 26 лет президент гораздо лучше продается электорату, чем стоящая за ним партия, каждый раз под тем соусом, что "вот сейчас-то он начнет закручивать гайки против всяких воров". Уверен, что у верхушки предусмотрена очередная операция "преемник", чтобы продолжалась их сытая жизнь.
Вы весьма большой оптимист, если полагаете, что вся нынешняя политическая система держится на одном, к тому же не слишком молодом, человеке.
Это стоит рассмотреть лишь при отсутствии O(n) вспомогательной памяти, иначе выбор почти всегда делается в пользу скорости.
Педаль тормоза там хотя бы предусмотрена? Или "чему быть, того не миновать"?
Которую единоросы сами же себе и придумали, чтобы отвлекать народ от внутренних проблем
Тоже удаляли аденойды, два раза. Второй раз - мне было год и 8 мес., это самое раннее что запомнил из детства 😂 Даже помню перед процедурой, как сижу на диванчике в коридоре с мыслью: "обычное унылое посещение больницы" - такой подставы я разумеется не ожидал )) Можете называть меня психом, но теперь от того эпизода осталось только чувство ностальгии ))
Очень надеюсь, что к тому моменту, как ИИ заменит чисто интеллектуальный труд, подоспеет и робототехника. По мне, так лучше тотальный коллапс, чем оказаться в горстке неудачников.
Навскидку (могу ошибаться) это не позволит существенно уменьшить количество сравнений. Стек будет большим после долгих монотонных отрезков массива, на таких отрезках у нас одно сравнение на итерацию. Выигрыш достигается, когда монотонность меняется в обратную сторону, причем каждая итерация скидывает со стека сразу много значений. Но таких итераций будет сравнительно мало. А если скидывается понемногу, то там нет особого бонуса от двоичного поиска. В общем, надо смотреть конкретные кейсы и проверять на практике.
Между БПФ и монотонным стеком - пропасть по сложности (если БПФ надо было запилить вручную). Ваш кейс действительно очень редкий, а вот поймать сабж на алгосекции вполне реально.
Почему именно совок? На мой взгляд, больше сходства с Германией 30-40 гг.
Сейчас идет много инфы о том, что после подписания контракта, подписавший весьма вероятно может огрести кучу проблем. Причем не только от оппозиции, но и от самих зетников (жанр называется "z-нытье"). Одна из задач единоросов - прикрыть эту инфу, иначе у них закончатся "любители многомиллионных выплат".
Поэтому стараются забанить всё независимое, где могут быть неподконтрольные каналы.
Есть конвертаторы из yaml:
openapi-zod
openapi-zod-client