Порридж В Ко-ливинге
Я нашел пост
Viktor
Порридж В Ко-ливинге
Порридж В Ко-ливинге
Порридж В Ко-ливинге
https://habr.com/ru/post/470407/
Порридж В Ко-ливинге
Там задача прям какую я разбирал
Порридж В Ко-ливинге
Порридж В Ко-ливинге
Там все задачи, которые мне давали в Я
Порридж В Ко-ливинге
У них реально так редко задачи меняются?
Порридж В Ко-ливинге
Ого
Порридж В Ко-ливинге
Сегодняшняя
Note: Your solution should run in O(log n) time and O(1) space.
Порридж В Ко-ливинге
У всех получилось с первой попытки?
Viktor
С первой - нет :-) ну бинпоиск потренироваться писать отличная задача, по-моему. У меня, правда немного громоздко вышло.
Viktor
Меня литкод, тем что показывает упавший тест, вообще развратил. Не хочется думать, нажал сабмит, посмотрел где косяк в логике.
Viktor
Другое дело - контест, там за это штраф.
Viktor
На acmp.ru тесты не показываются - не проходит и все тут. Сам думай.
Порридж В Ко-ливинге
Evgeniy
Порридж В Ко-ливинге
5-10 неправильных сабмита – можешь идти домой
Viktor
Тогда вам CF 🤣
На литкоде в контестах тоже так. На CF ещё фаза открытых взломов есть, это вообще по всем правилам ICPC
Порридж В Ко-ливинге
Порридж В Ко-ливинге
Evgeniy
Viktor
Фидбек конструктивный в лучших традициях честных рекрутеров дали?
Viktor
Друг другу
Порридж В Ко-ливинге
Сказали что Гуглдокс не подготовил (но я первый раз, делал в докс), и что если забыл как называется функция (перепустал padEnd с padBack), то можно вынести её и сказать что реализую позже
Порридж В Ко-ливинге
А так сделал костыль из
for(var k = 0; k <= i; ++k){
str += ‘a’;
}
Yuri
да я сразу на совещание сбежал, вот сижу
Yuri
решил отлично!
Yuri
одну успели решить https://leetcode.com/problems/goat-latin/
Порридж В Ко-ливинге
Evgeniy
У меня она какая-то с недописанным кодом
Evgeniy
подгрузился
Evgeniy
Писал и не закончил
Viktor
Звучит как задачка на стек, когда прочитал «надо добавить, потом удалить». Любопытно, не видел задачку, порешаю.
Yuri
да не. она в лоб
Yuri
мы только в одну сторону успели
Yuri
какая ж обманчивая окаазалсь задача
https://leetcode.com/problems/happy-number/
Yuri
вместе с женой ушли на 4 часа в теорию чисел
Evgeniy
А где вы проходили интервью?
Yuri
а оказалось, что не стоило
Evgeniy
на литкоде?
Yuri
задачи брали с литкода
Порридж В Ко-ливинге
Порридж В Ко-ливинге
Добро пожаловать в клуб
Порридж В Ко-ливинге
А решение оказалось очень простым
Порридж В Ко-ливинге
Даже с O(N) памяти
Evgeniy
Yuri
ты чо, там столько побочных крутых результатов вышло крутых
Порридж В Ко-ливинге
Evgeniy
Evgeniy
не много памяти
Evgeniy
Порридж В Ко-ливинге
Yuri
Viktor
Порридж В Ко-ливинге
То, что это число < 163 доказывается не сложно, а вот само число надо поискать
Evgeniy
https://leetcode.com/problems/happy-number/discuss/560443/C-straightforward-solution-using-HashSet
Evgeniy
я вот так решал
Порридж В Ко-ливинге
Порридж В Ко-ливинге
Доказал что это число меньше 163, а потом перебрал
Yuri
я через статистику чисел доказал
Порридж В Ко-ливинге
Порридж В Ко-ливинге
А как?
Yuri
ну типа, если у тебя есть шестнадцатизначное число
Yuri
то максимально из него получится 16*9^2 в результате прохода алгоритма
Порридж В Ко-ливинге
Порридж В Ко-ливинге
Я упрощал все
Yuri
почему?
Yuri
меня слегка расстроило, что надо было просто в лоб реализовать алгоритм и задача была всего-навсего на обнаружение цикла (через хэшмап)
Evgeniy
Yuri
Так проще всего
да, но чтобы иметь право это сделать, надо доказать несколько вещей
Порридж В Ко-ливинге
почему?
int getHappy(int digits){
int newNum = 0;
for(; digits != 0; digits /= 10){
int lastDigit = digits % 10;
newNum += lastDigit * lastDigit;
}
return newNum;
}
bool isHappy(int n){
while (n != 1){
n = getHappy(n);
if (n == 145){
return false;
}
}
return true;
}