Yana
я когда-то очень-очень давно занималась на Соло на клавиатуре Шахиджаняна, вот тут есть тренировки - https://solo.nabiraem.ru/
Andrey
занимался тоже по "Соло на клавиатуре" еще Stamina использовал
Andrey
Самое сложное - комменты писать честным десятипальцевым первое время и переписки по работе
Andrey
развивает лаконичность, реже вступаешь в ненужные споры
Sergei
занимался тоже по "Соло на клавиатуре" еще Stamina использовал
Разблокировал мне воспоминание про stamina, там помню тексты какие-то наркоманские были, печатаешь и думаешь wtf
Andrey
там еще и музыка соответствующая была 🫠 если до утра засидеться за Стаминой, впадаешь в легкий транс
igors
https://github.com/vitkarpov/coding-interviews-blog-archive/blob/main/posts/132pattern.md решил тут я ночью поревьювить github @vitkarpov и вот что интересно)) Там есть такое текстовое описание - "Решение за O(n)". Это же не то решение которое есть на литкоде со стэком - ?
Viktor
Не н, надо использовать все камни
Тогда не вижу другого варианта кроме как найти сперва сумму всех, далее проверить все комбинации и найти минимум для total - сумма текущей комбинации
igors
@vitkarpov мне просто кажется что у вас есть описка, а конкретно:
igors
Viktor
@vitkarpov мне просто кажется что у вас есть описка, а конкретно:
Наконец-то кто-то это читает, фидбек велком 🙌
igors
Первый пункт в скриншоте, мне кажется не стоит интервал класть сразу на стэк. Надо просто запомнить новый 'L'
Viktor
Первый пункт в скриншоте, мне кажется не стоит интервал класть сразу на стэк. Надо просто запомнить новый 'L'
ну да, наверное, можно, у меня получается первый интервал на стеке вырожденный {v, v} — точка, а далее все работает не теряя общности
igors
ну без этого условия да
igors
например - 2,4,1,2,0,3. stack =(2,4), l=2; stack(2,4)(1,2), l=1; И сейчас подходим к 0, и если по вашему алгоритму сначала положить на стэк последний интервал - (0, 3) и потом далее по писку перейти в else(ваш алгоритм), берём мин на стэке - это 0(L=0), "Чистим стек от интервалов, снимая с вершины, для которых текущее число больше r", сейчас на стэке (0,3), текущее 3. В итоге ничего не снимаем со стэка и конец списка. То есть вернём false? Хотя должно быть true.
igors
"Если стек пустой или текущее число меньше l интервала на вершине стека — создаем новый интервал и кладем на стек" как по мне это условие не верно, мы просто должно новый минимум сохранить в L если текущее число меньше l интервала на вершине стэка.
Ivan
Соло на клавиатуре. Дошел где-то до 40го урока. Остальное сам уже доучил
Пробовал это орудие пыток где-то лет 15 назад. Проклял всё.
Ivan
Но эффективность не отрицаю, у меня тетя освоила 10 пальцевый, притом, что она с компьютером на «вы»
Ivan
именно через соло
Ivan
Меня и 8 пальцевый устраивает. Качался в начале 2000-х на программе iChat )))
Mikhail
те кто владеет 10 пальцами, подскажите, так ли это влияет на скорость работы?
Evgeniy
именно через соло
я в ней в основном средний ряд отточил. А верхний и нижний потом уже сами запомнились
Ivan
флешбэки с фывойпролджэ до сих пор.
Evgeniy
те кто владеет 10 пальцами, подскажите, так ли это влияет на скорость работы?
Позволяет не задумываться на сам набор, а думать о том, что именно набираешь
Evgeniy
Добавляет ощущения "потока мыслей" в пальцах
Mikhail
я просто умею вслепую но где то 4 пальцами. у меня нет русских букв на клаве, но я без этого печатаю
Ivan
Если не смотришь на клаву, кажется, что уже все хорошо )
Evgeniy
Набираешь быстрее - факт
Viktor
например - 2,4,1,2,0,3. stack =(2,4), l=2; stack(2,4)(1,2), l=1; И сейчас подходим к 0, и если по вашему алгоритму сначала положить на стэк последний интервал - (0, 3) и потом далее по писку перейти в else(ваш алгоритм), берём мин на стэке - это 0(L=0), "Чистим стек от интервалов, снимая с вершины, для которых текущее число больше r", сейчас на стэке (0,3), текущее 3. В итоге ничего не снимаем со стэка и конец списка. То есть вернём false? Хотя должно быть true.
Вот, что он мне печатает для этого примера: 2 {(2,2),} 4 {(2,4),} 1 {(2,4),(1,1),} 2 {(2,4),(1,2),} 0 {(2,4),(1,2),(0,0),} - элемент 2, стек пустой, кладем точку на стек (2,2) - элемент 4, стек не пустой и текущий элемент (4) больше 2 (left) на вершине стека - запоминаем 2, чистим стек (в итоге пустой), создаем новый интервал (2,4) и кладем на стек - элемент 1, стек не пустой и текущий элемент (1) меньше 2 (left) на вершине стека - создаем новый вырожденный интервал и кладем на стек - элемент 2, стек не пустой и текущий элемент (2) больше 1 (left) на вершине стека - запоминаем 1, чистим стек (в итоге {(2,4),}) - подходим ли 2 в текущий интервал под ответ? нет, создаем новый интервал (1,2) и кладем на стек - элемент 0, стек не пустой и текущий элемент (0) меньше 1 (left) на вершине стека - создаем новый вырожденный интервал и кладем на стек - элемент 3, стек не пустой и текущий элемент (3) больше 0 (left) на вершине стека - запоминаем 0, чистим стек (в итоге {(2,4),}) - подходит ли этот интервал под ответ? да (2,4,3), возвращаем true
Viktor
надо расставить в программе логи, которые будут генерировать такой текст 🔥
Viktor
просто если текущее число целиком левее интервала на вершине стека, то в этот интервал оно не попадет, поэтому мы должны его отдельно проверить положив на стек, но и терять предыдущий интервал не хочется, отсюда вообще появляется стек
Viktor
Вот, что он мне печатает для этого примера: 2 {(2,2),} 4 {(2,4),} 1 {(2,4),(1,1),} 2 {(2,4),(1,2),} 0 {(2,4),(1,2),(0,0),} - элемент 2, стек пустой, кладем точку на стек (2,2) - элемент 4, стек не пустой и текущий элемент (4) больше 2 (left) на вершине стека - запоминаем 2, чистим стек (в итоге пустой), создаем новый интервал (2,4) и кладем на стек - элемент 1, стек не пустой и текущий элемент (1) меньше 2 (left) на вершине стека - создаем новый вырожденный интервал и кладем на стек - элемент 2, стек не пустой и текущий элемент (2) больше 1 (left) на вершине стека - запоминаем 1, чистим стек (в итоге {(2,4),}) - подходим ли 2 в текущий интервал под ответ? нет, создаем новый интервал (1,2) и кладем на стек - элемент 0, стек не пустой и текущий элемент (0) меньше 1 (left) на вершине стека - создаем новый вырожденный интервал и кладем на стек - элемент 3, стек не пустой и текущий элемент (3) больше 0 (left) на вершине стека - запоминаем 0, чистим стек (в итоге {(2,4),}) - подходит ли этот интервал под ответ? да (2,4,3), возвращаем true
https://gist.github.com/vitkarpov/e7ce3113a47b5fe8ad8fc636d8feb79c
igors
ну вот и порешали
igors
спс
Viktor
я вижу, что в editorial решение со стеком немного другое, там нет интервалов — они хранят всегда одну чиселку, а вторую помнят. так может даже лучше, но мне проще было думать в терминах интервалов чтобы как-то это визуализировать
igors
вот и мне
igors
потому я и прицепился к вашему решению
igors
там тем более надо с конца списка идти
igors
ещё есть интересное решение с binary search
Ilia
Тогда не вижу другого варианта кроме как найти сперва сумму всех, далее проверить все комбинации и найти минимум для total - сумма текущей комбинации
Все комбинации проверять не надо. Сортировка, сумма, дальше набираем камни подряд сначала максимально к середине суммы(это будет либо один из двух вариантов, либо куча до перехода середины, либо куча сразу после перехода), выйдет nlogn
Viktor
Все комбинации проверять не надо. Сортировка, сумма, дальше набираем камни подряд сначала максимально к середине суммы(это будет либо один из двух вариантов, либо куча до перехода середины, либо куча сразу после перехода), выйдет nlogn
забыл спросить главное, какое ограничение на количество камней. в оригинальной задаче https://acmp.ru/index.asp?main=task&id_task=71 там N <= 18, так что даже полный перебор не выглядит страшно
Anvar
Чето сегодня муторная какая-то в адвенте, не сложно но кода много
Evgeniy
Разделял на классы
Владъ
По-моему, само много уходит на парс данных Остальное - это та же задача на диапазоны + dfs
Владъ
Просто я обычно паршу данные по максимуму и кладу в удобную структуру, чтобы в основном алгоритме не отвлекаться
Evgeniy
Я делал так же. Скармливал строку классу, парсил в его конструкторе
Viktor
Ну я про это и говорю, парсить морока
Наконец, задачи близкие к реальности 😅
Владъ
Ну я про это и говорю, парсить морока
Ну не знаю, мне нравится, это самое простое в заданиях) Тренируешь навыки regexp
Ilia
в итоге чтобы на литкоде 100 дней бэдж дали, надо было 100 дней заходить и засабмитить задачу(сегодня дали 100 дней бэдж)
Evgeniy
Прошлое решение
Ilia
А отсылал сегодня что-нибудь?
эм, да. всё же отсылал. так что сабмит задачи тоже решается(я уже и забыл, что отправлял старое решение)
Viktor
Кому на работе вообще нужны алгоритмы?
Alex-k
и почему он не прав?
Serega
Кому на работе вообще нужны алгоритмы?
Может он ее использовал как подставку под монитор, чтобы повыше стоял
Ivan
Кому на работе вообще нужны алгоритмы?
Напрашивается аналогия с тренажерным залом. В реальной жизни от груди 100кг толкать вроде бы не надо. Но физподготовка полезна во всем. Также алгосики. Мозги качают, помогают оставаться в тонусе.
Alex
Кому на работе вообще нужны алгоритмы?
И хорошо что уволил, щас бы работать с руководителем который не готов к тому что его инженеры могут ходить по собесам.
Ilia
В чате ночью с переписываться пока мама спит. Я так делал
У меня 250-300cpm, но 3-5% опечаток на правой руке, на которой я только двумя пальцами пользуюсь, вот это и хочу исправить
Oleg
Не, у нас свои локальные были
Dimitri
За недельку научишься.
Evgeniy
https://klava.org/delta/#eng_basic
Попробовал немного. Она подстраивается или просто дает популярные комбинации букв?
Igor
Попробовал немного. Она подстраивается или просто дает популярные комбинации букв?
Не знаю. Занимался с ней неделю и дошел до 60-70 слов в минуту. Потом забил. А вот нажимать разными пальцами на пробел так и не научился
Igor
Разными пальцами на пробел приучивает Соло на клавиатуре
Там какая-то методика, или просто показывает какой палец использовать?
Igor
И правый шифт тоже не использую)
Evgeniy
Там какая-то методика, или просто показывает какой палец использовать?
В процессе обучение об этом не раз напоминают. И правило — нажимать пробел не той рукой, которой напечатал последнюю букву
Evgeniy
И правый шифт тоже не использую)
Неудобные привычки. А пробел тоже не всегда нажимаю правильно
Igor
После 5 лет контр страйка сложно отказаться от привычек)