Anonymous
Anonymous
Anonymous
и без строгой типизации
Anonymous
Артур
привет, ребята, подскажите пожалуйста, может кто-то знает есть ли для vima плагин подобия flake8, но автоматического действия ?
matus18
Ты о видео ?
да, на CodeWars можно получать ответы но не получишь баллов за выполненное ката
Anonymous
Anonymous
Anonymous
Anonymous
Шурок
А в чем прикол ?
В том что вы написали что не возможно получить ответ по задаче.
Кидаю ВИДЕО - что без решения можно.
Шурок
Anonymous
Anonymous
Anonymous
Alexander
Anonymous
Просто удобнее с кодом. Его и запустить можно
Alexander
Да пожалста
Anonymous
Или на кодепен
Alexander
import time
start_time = time.time()
def fill_arr(arr, x):
y = 2 * x + 1
z = 3 * x + 1
t = -1
if y > arr[-1]:
arr.append(y)
else:
while y < arr[t]:
t -= 1
if y != arr[t]:
arr.insert(t+1, y)
arr.append(z)
return arr
def dbl_linear(xlim):
arr = [1]
x = 0
lim = xlim + 10
while len(arr) < lim:
arr = fill_arr(arr, arr[x])
x += 1
return arr[xlim]
def testing(foo, ans):
if foo == ans:
print(f"{foo} == {ans}")
else:
print(f"{foo} != {ans}")
testing(dbl_linear(10), 22)
testing(dbl_linear(20), 57)
testing(dbl_linear(30), 91)
testing(dbl_linear(50), 175)
print(dbl_linear(15000))
print(f'===== {time.time() - start_time} seconds =====')
Anonymous
Nano.Karmabot.chat
Choice! nuu44a got +1 from Name . 8 karma in total.
Anonymous
Anonymous
Anonymous
А что за язык у тебя?
Anonymous
Питон
Anonymous
Anonymous
Так и не решил проблему
Anonymous
Но обошёл ее с другой стороны
Anonymous
Проблема была в том, что надо было посчитать дни и вывести количество
Alexander
Anonymous
А когда дату не вбивал, то все равно 1 стояло. Вообщем я просто поставил запрет на создания договора если дату не поставил
Anonymous
На стеке мне удалось уже найти решение, ща логику разберу
Anonymous
3ms
Alexander
Alexander
У меня там что-то ломалось
Шурок
Anonymous
Вот оно, можно вместе разобрать. Оно на JS
Anonymous
Anonymous
Anonymous
function dblLinear(n) {
var ai = 0, bi = 0, eq = 0;
var sequence = [1];
while (ai + bi < n + eq) {
var y = 2 * sequence[ai] + 1;
var z = 3 * sequence[bi] + 1;
if (y < z) { sequence.push(y);
ai++;
}
else if (y > z) {
sequence.push(z);
bi++;
}
else { sequence.push(y);
ai++;
bi++;
eq++; }
}
return sequence.pop();
}
Alexander
Я пока не буду смотреть
Anonymous
Да пойми, так проще будет понять что к чему, и уже решать подобное.
К чему велосипеды.
Alexander
Alexander
Anonymous
размышление в чате поможет.
Alexander
Короче, он вычисляет здесь поочереди.
Alexander
И проверяет заполненность массива.
Alexander
Двумя индексами заполняет массив, при достижении необходимого элемента n в массиве сразу останавливается. Короче я расстроен.
Anonymous
но счетчики - это же крутая фитча, они помогают начать поток вычислений с нужного числа
Anonymous
Dmitriy
/top@nanokarmabot
Nano.Karmabot.chat
🏆 Таблица лидеров
🥇 Alexander Nuucha: 8 кармы
🥈 Alexey Korepanov: 2 кармы
🥉 Vladimir Deryagin: 1 карма
4. Netai : 1 карма
5. Dmitry N: 1 карма
6. ChampionTommy : 0 кармы
7. Сырный Сыр: -1 кармы
Смотреть полный список
Anonymous
Короч.
Счетчик позволяет добавить любой из двух элементов (в зависимости от условия) в массив, и упорядочивать не нужно, к тому же сразу устраняется проблема с дублями.
А пропуская этот этап мы сокращаем время выполнения.
Профит.
Anonymous
Прекрасное решение, как по мне.
Alexander
Прекрасное решение, как по мне.
Безусловно, прекрасное! Два индекса он держит для y и z отдельно. eq у него считает накладки y на z, чтоб избавиться от дублей, и заодно увеличить размер массива (там где я 10 поставил) динамически. Я там сначала пытался коэффициент подобрать.
Молодец кодер, однозначно! 👏
Alexander
Здесь уж точно О(n) сложность.
Anonymous
В том и профит для каждого, кто может и читает другой код, как мне кажется.
Anonymous
Так как для того чтобы включить чайник, нам не надо в начале создавать вселенную)))
Alexander
Мой код на ноуте отрабатывал за 3сек, его - за 0.03. При сдаче кода, его алгоритм отработал за 1.4сек, значит, мой прошел бы тест за 140 секунд 😂
Alexander
Нейдивительно, что я в отведенные 12сек не помещался 😃
Anonymous
Просто у него нет веток, есть только последовательное вычисление без возвратов.
Alexander
А че так?
Я решал задачу с перерывами с 12 часов дня 😒
Anonymous
Anonymous