Ilia
возможно стоит умножать только на предыдущий уровень, а не на все предыдущие
Evgeniy
А тестов сколько проходит?
Evgeniy
И наверное у тебя вышло в ответе большее число, чем надо
Ilia
Evgeniy
Что-то смущает этот "хак" с нулем)
Ilia
его нельзя применять на последней цифре, а в целом он работает ))
Evgeniy
А почему фильтр идет по меньшим числам? Например, нам даны 1,4,5, а цифра - 2. Он тогда не все возьмет
Ilia
он берет только текущий уровень же, а на текущем только 1 и подойдет
Evgeniy
А ведь если будет ноль, то цифры уже будут у меньших чисел, причем сильно меньших. Например, при 102 это сработает?
Ilia
поэтому 0 я считаю за 10, щас рисую на бумажке что делать с первой цифрой числа
Ilia
остальное вроде сходится
Evgeniy
А случайно не надо в этом случае понижать предыщущую цифру на 1, если следующая - 0
Evgeniy
Т.е. например, у нас цифры 1,2,4, число 203. Мы учли тройку (подойдут 1 и 2), учли 0 (подойдут 1,2,4), а теперь мы берем не 2, а 1 (и подходит только 1)
Evgeniy
Поправил цифры
Evgeniy
Чтобы лучше было понятно
Ilia
вариант с фильтрацией провалился на 14 тесте. digits=['9'], а n = 55
Ilia
и я сел в лужу. нужно еще думать )
Ilia
Крутая задача, давно так не залипал )
Evgeniy
В общем смотри. Я еще не реализовал, но суть такая. Как писал выше, про отнимание единицы -- это нужно. Например, число 1300, цифры 1,3,5. Отнимаем, получаем: 1299. Или, что то же самое: 1155.
Evgeniy
Считаем сколько возможно комбинаций: 3*3*1*1 = 9. Дальше, для трех цифр: 3*3*3 = 27. Двух: 3*3 = 9. Одной: 3
Evgeniy
Складываем: 9+27+9+3 = 48
Evgeniy
1301
Все равно надо. 1291. Или 1151
Evgeniy
Надо попробовать, верно ли будет
Evgeniy
Похоже получается, что все, что идет после первого нуля, надо делать по максимуму
Evgeniy
Т.е. все равно 1155
Lynn «Кофеман»
Мне эта задачка напомнила https://www.codewars.com/kata/53e57dada0cb0400ba000688
Ali
Еее, маленький шаг сделан :D
Ali
Супер простая задачка - https://leetcode.com/problems/two-sum/ Я её как только не крутил вертел.. в итоге остановился на for в fore.. )
Порридж В Ко-ливинге
💪
Порридж В Ко-ливинге
Удивительно что вложенный цикл быстрее 2ух проходов
Viktor
Супер простая задачка - https://leetcode.com/problems/two-sum/ Я её как только не крутил вертел.. в итоге остановился на for в fore.. )
Молодец! Теперь попробуй подумать как можно использовать «дополнительную память» чтобы решить задачу в теории быстрее. Подумай, что значит «быстрее в теории», это про понятие сложности, как я в видосах говорил.
Ali
Молодец! Теперь попробуй подумать как можно использовать «дополнительную память» чтобы решить задачу в теории быстрее. Подумай, что значит «быстрее в теории», это про понятие сложности, как я в видосах говорил.
Если я верно понял, то это наверное про то, что в моем случаи, это O(n^2) , так как у меня цикл в цикле и от этого сложность такая. А можно попробовать сделать наверное как то через hash таблицу, как в видео твоем, что бы снизить сложность до O(n), то есть лишь 1 цикл
Ali
😄 правда я пока не сильно понимаю как это сделать.. лишь так, поверхностно думаю.. над пробовать короче)
Viktor
так это работает.
Nikolay
Я вот эту сегодня решил https://leetcode.com/submissions/detail/457142831/ Посмотрел решения других увидел что можно получить буст заменив slice на выборку из оригинального массива по индексам начала и конца интервала. Но я не понимаю стоит ли это делать с точки зрения читаемости и понимания происходящего)) Или мои опасения не обоснованы?
Lynn «Кофеман»
не-а, несколько дней в фоне думал
Evgeniy
С кодеварс? А литкодовскую?
aTan
@rende11 ссылки на чужие сабмишины на литкоде не работают)
Nikolay
оу
Nikolay
https://leetcode.com/problems/convert-sorted-array-to-binary-search-tree/
Evgeniy
Можешь на пастебин решение кинуть
Lynn «Кофеман»
С кодеварс? А литкодовскую?
Ещё не решал, но вроде идея решения должна подойти. Тут даже проще, нет повторяющихся цифр
Evgeniy
Вообще это очень похоже на систему счисления
Lynn «Кофеман»
А, ну тогда вообще практичеаки не отличается
Lynn «Кофеман»
Evgeniy
А, кстати, но только нуля нет
Да. Но вроде получается и без него.
Lynn «Кофеман»
Хотя я понял что задача-то другая. В кодеварсе перестановки букв, а не произвольный набор
Ali
А подскажите пожалуйста. Я на leetcode Могу добавлять дополнительные переменные Вне функции ?
Evgeniy
Лишь бы сохранить исходную функцию. Можно даже имена параметров менять
Ali
Да, почему нет 🙂
Тогда что то не понимаю ( Есть вот такая задачка - https://leetcode.com/problems/running-sum-of-1d-array/ решил сделать "топорно", на мой взгляд, через рекурсию. Вынес общий массив за эту функцию и пошел поехал. На локалке все верно проходит по входным данным и выходным. А вот в тестах на сайте вообще какой то треш происходит \\
Ali
Ali
Ali
Вот для наглядности \ (да код конечно Г, но я ток учусь!:D)
Viktor
мне кажется, это отличный пример почему нужно избегать глобального стейта. на литкоде бежит много тестов и, кажись, там все портится с этим глобальным массивом где-то на последующих тестах.
Ali
за что такая несправедливость ))
Viktor
обучение через боль 😉
Lynn «Кофеман»
Вот для наглядности \ (да код конечно Г, но я ток учусь!:D)
У тебя после первого запуска sumNumbers «испортился» Продублируй в своём тесте последнюю строчку и увидишь такой же неверный ответ
Ali
Если что то не выходит, то цикл FOR поможет 😃😃
Ali
У тебя после первого запуска sumNumbers «испортился» Продублируй в своём тесте последнюю строчку и увидишь такой же неверный ответ
Спасибо.. Что то попробовал и внутри функции дублировать, и консольку и все можно в конце.. чет не заметил того, как у них на тесте.. мб не понял до конца.. ну ладно, фиг с ним)
Nikolay
Не думаю, slice по идее сам делает копию из части исходного массива
Ну он же выделяет память под этот новый массив, а так у тебя только исходный массив
Ali
Если что то не выходит, то цикл FOR поможет 😃😃
Все, максимум выжил, что смог придумать. убрал 1 лишний проход по циклу, убрал ненужные проверки, ненужные переменные и вроде так ок
Ali
🧐 Только сейчас узнал что replaceAll нету в node, а тесты на leetcode походу на ней крутятся, ибо та же ошибка, что якобы нет такой функции... А я уже думал мега легкое задание с ip :D