Ilia
возможно стоит умножать только на предыдущий уровень, а не на все предыдущие
Evgeniy
А тестов сколько проходит?
Ilia
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
и я сел в лужу. нужно еще думать )
Evgeniy
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
Ilia
В общем смотри. Я еще не реализовал, но суть такая. Как писал выше, про отнимание единицы -- это нужно. Например, число 1300, цифры 1,3,5. Отнимаем, получаем: 1299. Или, что то же самое: 1155.
Но проблема в том когда отнимать единицу, ведь может быть ситуация, когда это не надо будет делать
Evgeniy
Ilia
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
Ali
Молодец! Теперь попробуй подумать как можно использовать «дополнительную память» чтобы решить задачу в теории быстрее. Подумай, что значит «быстрее в теории», это про понятие сложности, как я в видосах говорил.
Если я верно понял, то это наверное про то, что в моем случаи, это O(n^2) , так как у меня цикл в цикле и от этого сложность такая.
А можно попробовать сделать наверное как то через hash таблицу, как в видео твоем, что бы снизить сложность до O(n), то есть лишь 1 цикл
Viktor
Ali
😄 правда я пока не сильно понимаю как это сделать.. лишь так, поверхностно думаю.. над пробовать короче)
Viktor
Viktor
так это работает.
Nikolay
Я вот эту сегодня решил https://leetcode.com/submissions/detail/457142831/
Посмотрел решения других увидел что можно получить буст заменив slice на выборку из оригинального массива по индексам начала и конца интервала. Но я не понимаю стоит ли это делать с точки зрения читаемости и понимания происходящего)) Или мои опасения не обоснованы?
Evgeniy
Lynn «Кофеман»
не-а, несколько дней в фоне думал
Evgeniy
С кодеварс? А литкодовскую?
aTan
@rende11 ссылки на чужие сабмишины на литкоде не работают)
Evgeniy
Nikolay
оу
Nikolay
https://leetcode.com/problems/convert-sorted-array-to-binary-search-tree/
Evgeniy
Можешь на пастебин решение кинуть
Evgeniy
Evgeniy
Вообще это очень похоже на систему счисления
Lynn «Кофеман»
А, ну тогда вообще практичеаки не отличается
Nikolay
Lynn «Кофеман»
Lynn «Кофеман»
Хотя я понял что задача-то другая. В кодеварсе перестановки букв, а не произвольный набор
Ali
А подскажите пожалуйста.
Я на leetcode Могу добавлять дополнительные переменные Вне функции ?
Evgeniy
Evgeniy
Evgeniy
Лишь бы сохранить исходную функцию. Можно даже имена параметров менять
Ali
Да, почему нет 🙂
Тогда что то не понимаю (
Есть вот такая задачка - https://leetcode.com/problems/running-sum-of-1d-array/
решил сделать "топорно", на мой взгляд, через рекурсию.
Вынес общий массив за эту функцию и пошел поехал. На локалке все верно проходит по входным данным и выходным. А вот в тестах на сайте вообще какой то треш происходит \\
Ali
Ali
Ali
Вот для наглядности \ (да код конечно Г, но я ток учусь!:D)
Viktor
мне кажется, это отличный пример почему нужно избегать глобального стейта. на литкоде бежит много тестов и, кажись, там все портится с этим глобальным массивом где-то на последующих тестах.
Ali
Ali
за что такая несправедливость ))
Viktor
обучение через боль 😉
Ali
Если что то не выходит, то цикл FOR поможет 😃😃
Ali
🧐 Только сейчас узнал что replaceAll нету в node, а тесты на leetcode походу на ней крутятся, ибо та же ошибка, что якобы нет такой функции...
А я уже думал мега легкое задание с ip :D
Nikolay
Ali