Skip to content

Commit 1a474ef

Browse files
authored
Update README.md
1 parent 815be30 commit 1a474ef

1 file changed

Lines changed: 19 additions & 1 deletion

File tree

contests/leetcode/README.md

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -150,6 +150,24 @@ template <class T> char *debug_arr2(T begin, T end) {
150150

151151
## Почему это не идеальный сайт
152152

153+
### Тесты недостаточно сильные
154+
153155
Я не люблю LeetCode из-за того как он оценивает скорость работы программы и её потребление памяти: это абсолютный рандом, и он не проверяет смог ли алгоритм уложиться в нужный предел по времени. Явный пример — [Median of two sorted arrays](https://leetcode.com/problems/median-of-two-sorted-arrays/), в этой задаче требуется сделать сложность `O(log(m + n))`, но решение не проверяется на массивах большого размера, где была бы заметна разница между `O(m + n)` и `O(log(m + n))`. Я локально проверил на больших массивах и обнаружил существенную разницу во времени.
154156

155-
Ну и ещё меня бесит что люди в секции Discussions пишут время по замерам LeetCode, но не пишут сложность `O(...)`.
157+
Ну и ещё меня бесит что люди в секции Discussions пишут время по замерам LeetCode, но не пишут сложность `O(...)`.
158+
159+
Ещё один пример когда решение должно было быть быстрым, но проиграло наивному: https://t.me/dereference_pointer_there/494.
160+
161+
### Время чекера аффектит результат времени твоей программы
162+
163+
Можно с ничего улучшить результат своей программы очень сильно (для одной задачи я улучшил в 2 раза), просто добавив в начало этот код:
164+
165+
```c++
166+
const int FASTIO = [](){
167+
ios_base::sync_with_stdio(false);
168+
cin.tie(nullptr);
169+
return 0;
170+
}();
171+
```
172+
173+
Это код для ускорения ввода-вывода. Раз это работает, значит чекер замеряет время не только работы самой программы, но ещё и время считывания тестов. Что очень и очень плохо. Учитывая то что на литкоде мы пишем только функцию, и не пишем работу с вводом-выводом, это значит что он не должен нас касаться.

0 commit comments

Comments
 (0)