Какова амортизированная сложность m операций union/find с union by rank + path compression?
👾 — O(m log n)
👍 — O(m α(n))
🥰 — O(mn)
🥱 — O(m)
Кстати, у нас сейчас действует 40% скидка на курс Алгоритмы и структуры данных .
Библиотека задач по C#
👾 — O(m log n)
👍 — O(m α(n))
🥰 — O(mn)
🥱 — O(m)
Библиотека задач по C#
😢4👍3🌚2
🤔 Как ускорить браузер
Закрой все вкладки со словами «MacBook», «купить ноутбук», «ноут в рассрочку». Потому что у нас есть решение лучше.
🔥 Proglib разыгрывает MacBook Pro 14. Формула простая: покупаешь любой курс до 15 ноября → учишься 2 недели → пишешь куратору #розыгрыш
Пока у тебя открыто 147 вкладок с ценами, кто-то уже прокачивает скилы и может забрать приз.
👉🏻 Выбрать курс для участия
Закрой все вкладки со словами «MacBook», «купить ноутбук», «ноут в рассрочку». Потому что у нас есть решение лучше.
🔥 Proglib разыгрывает MacBook Pro 14. Формула простая: покупаешь любой курс до 15 ноября → учишься 2 недели → пишешь куратору #розыгрыш
Пока у тебя открыто 147 вкладок с ценами, кто-то уже прокачивает скилы и может забрать приз.
👉🏻 Выбрать курс для участия
Каковы особенности переменных, доступных только для чтения?
👾 — Инициализируются во время выполнения
👍 — Могут использоваться со статическими модификаторами
🥰 — Объявляются только на уровне класа
🥱 — Все вышеперечисленное
Библиотека задач по C#
👾 — Инициализируются во время выполнения
👍 — Могут использоваться со статическими модификаторами
🥰 — Объявляются только на уровне класа
🥱 — Все вышеперечисленное
Библиотека задач по C#
🥱19👾2
Зачем использовать IHttpClientFactory вместо создания нового HttpClient на каждый запрос?
👾 — Чтобы отключить DNS-кеш и ускорить повторы
👍 — Чтобы переиспользовать SocketsHttpHandler, избежать socket exhaustion и централизовать политики таймаутов/ретраев
🥰 — Чтобы все запросы шли через один и тот же IP
⚡️ — Чтобы сделать запросы синхронными и без аллокаций
Библиотека задач по C#
👾 — Чтобы отключить DNS-кеш и ускорить повторы
👍 — Чтобы переиспользовать SocketsHttpHandler, избежать socket exhaustion и централизовать политики таймаутов/ретраев
🥰 — Чтобы все запросы шли через один и тот же IP
⚡️ — Чтобы сделать запросы синхронными и без аллокаций
Библиотека задач по C#
👍15
Когда уместно async void?
👾 — Для «fire-and-forget» в сервисах
👍 — Только для обработчиков событий; в остальном возвращайте Task
🥰 — Чтобы скрывать исключения из вызвавшего кода
⚡️ — Когда нужно вернуть значение синхронно
Библиотека задач по C#
👾 — Для «fire-and-forget» в сервисах
👍 — Только для обработчиков событий; в остальном возвращайте Task
🥰 — Чтобы скрывать исключения из вызвавшего кода
⚡️ — Когда нужно вернуть значение синхронно
Библиотека задач по C#
👍29👾3⚡1🥰1
C#-навигация прямо в браузере? Да, теперь и такое есть! 👀
Для тех, кто работает с C#, приятные новости от SourceCraft. Платформа добавила умную навигацию, которая понимает связи между функциями и позволяет переходить по объявлениям прямо в веб-интерфейсе — как в вашей любимой IDE. 🔥
А ИИ-ассистент теперь дописывает методы на C
не изолированно, а в контексте всего проекта. Для команд с разнесёнными код-ревью или для быстрого онбординга новичков — просто находка. Можно даже коммитить правки из браузера, не теряя типизацию.
Для тех, кто работает с C#, приятные новости от SourceCraft. Платформа добавила умную навигацию, которая понимает связи между функциями и позволяет переходить по объявлениям прямо в веб-интерфейсе — как в вашей любимой IDE. 🔥
А ИИ-ассистент теперь дописывает методы на C
не изолированно, а в контексте всего проекта. Для команд с разнесёнными код-ревью или для быстрого онбординга новичков — просто находка. Можно даже коммитить правки из браузера, не теряя типизацию.
Зачем указывать RunContinuationsAsynchronously у TaskCompletionSource?
👾 — Чтобы продолжения выполнялись синхронно при SetResult
👍 — Чтобы не исполнять продолжения синхронно в потоке SetResult, а планировать их асинхронно, избегая дедлоков и глубоких стеков
🥰 — Чтобы запретить отмену задач
⚡️ — Чтобы обойти планировщик и ускорить завершение
Библиотека задач по C#
👾 — Чтобы продолжения выполнялись синхронно при SetResult
👍 — Чтобы не исполнять продолжения синхронно в потоке SetResult, а планировать их асинхронно, избегая дедлоков и глубоких стеков
🥰 — Чтобы запретить отмену задач
⚡️ — Чтобы обойти планировщик и ускорить завершение
Библиотека задач по C#
👍10
Почему lock(this) — антипаттерн?
👾 — Блокирует сборщик мусора
👍 — Публичный монитор: внешний код может тоже его захватить → риск дедлоков; используйте приватный объект (private readonly object _gate = new();)
🥰 — Потому что this не является ссылочным типом
⚡️ — Потому что lock — это всегда spinlock без ожидания
Библиотека задач по C#
👾 — Блокирует сборщик мусора
👍 — Публичный монитор: внешний код может тоже его захватить → риск дедлоков; используйте приватный объект (private readonly object _gate = new();)
🥰 — Потому что this не является ссылочным типом
⚡️ — Потому что lock — это всегда spinlock без ожидания
Библиотека задач по C#
👍13
✨ Halloween Special — последний день магии! 👻
Успевай сегодня купить курсы со скидкой 40%!
А также участвуй в розыгрыше MacBook Pro 14 💻
После полуночи останется только тыква 🎃
🔮 Открой портал и выбери курс
Успевай сегодня купить курсы со скидкой 40%!
А также участвуй в розыгрыше MacBook Pro 14 💻
После полуночи останется только тыква 🎃
🔮 Открой портал и выбери курс
Что важно для ключей Dictionary<TKey, TValue> при TKey-структуре?
👾 — Переопределять только ToString()
👍 — Иммутабельность и корректные Equals/GetHashCode без зависимости от изменяемых полей
🥰 — Разрешить менять поля после вставки — хеш пересчитается автоматически
⚡️ — Достаточно реализовать IComparable<T>
Библиотека задач по C#
👾 — Переопределять только ToString()
👍 — Иммутабельность и корректные Equals/GetHashCode без зависимости от изменяемых полей
🥰 — Разрешить менять поля после вставки — хеш пересчитается автоматически
⚡️ — Достаточно реализовать IComparable<T>
Библиотека задач по C#
👍14👾1
👾39
Каковы отличия между Finalize и Dispose?
Dispose предоставляет явный контроль над ресурсами, которые использует объект, в то время как Finalize работает неявно и управляется сборщиком мусора.
Библиотека задач по C#
Dispose предоставляет явный контроль над ресурсами, которые использует объект, в то время как Finalize работает неявно и управляется сборщиком мусора.
Библиотека задач по C#
👍1
Зачем помечать override как sealed?
👾 — Чтобы запретить вызов из другого домена
👍 — Чтобы запретить дальнейшее переопределение и дать JIT шанс де-виртуализировать/инлайнить метод
🥰 — Чтобы сделать метод static
⚡️ — Это обязательно для всех virtual в Release
Библиотека задач по C#
👾 — Чтобы запретить вызов из другого домена
👍 — Чтобы запретить дальнейшее переопределение и дать JIT шанс де-виртуализировать/инлайнить метод
🥰 — Чтобы сделать метод static
⚡️ — Это обязательно для всех virtual в Release
Библиотека задач по C#
👍9