Snappy
Igor
просто у меня бло требование 32 гига ... на тот момент в наличии были только i9 ну мне и взяли i9 хотя я прочил i7 $)
Mikhail
Mikhail
Напомнил
Igor
Так это рабочий ;)
Mikhail
Так это рабочий ;)
Дак я про это и говорю, надо заявку на новый рабочий написать и обновить 😉
Напомнил мне об этом
Igor
Да так он мну устраивает в принципе ... просто временами удивляет ;)
Igor
Igor
ну да ... в деке нада подумать ... если ваще думать в лом то хип.
Igor
схера ли она хард ниясна ;)
Igor
на пайтоне не выдает ... но 34%)
Igor
пытался деку без зацикливания сделать тупо на массиве ... всеравно ручная дека медленней чем встроенная ;(
Igor
class Solution:
def maxSlidingWindow(self, nums: List[int], k: int) -> List[int]:
h = [(-nums[i], i) for i in range(k-1)]
heapify(h)
def v(i):
heappush(h, (-nums[i], i))
while h[0][1] <= i-k:
heappop(h)
return -h[0][0]
return [v(i) for i in range(k-1, len(nums))]
Igor
ну отакое зашло
Igor
просто в деке возни много ;)
Igor
ну по сравнению ;)
Igor
Вот с недодекой ...
class Solution:
def maxSlidingWindow(self, nums: List[int], k: int) -> List[int]:
if len(nums) == k:
return [max(nums)]
if k == 1:
return nums
d = [0] * len(nums)
h = 0
t = 1
i1 = iter(nums)
i2 = iter(nums)
d[0] = next(i1)
for i in range(k-2):
v = next(i1)
while d[t-1] < v and t > h:
t-= 1
d[t] = v
t += 1
res = []
for i in range(len(nums) - k + 1):
v = next(i1)
while d[t-1] < v and t > h:
t-= 1
d[t] = v
t += 1
res.append(d[h])
if d[h] == next(i2):
h += 1
return res
на стандартной не захотел писать ... думал "нагнуть" ан нифига ;)
Igor
пробовал бисектом искать но сука тоже медленней ;) понятно что асимптотически выигрыш нулевой ... но это жи питон ... думал а вдрук будет быстрее ;)
Igor
Раз уж начал выкладывать код ... Вот Ксюша которая ааа сложная разви можна такое давать на 4 часа ;)
import itertools
N = 10
p = [0j, *itertools.accumulate(1j**(4*i/N) for i in range(N))]
maxj = []
for n in range(N+1):
m = 0
for i in range(1, n // 2 + 1):
for j in range(i + 1, n):
m = max(m, (p[i].real*p[j].imag - p[i].imag*p[j].real) / 2 + maxj[i-1] + maxj[j-i-1] + maxj[n-j-1])
maxj.append(m)
print(maxj[N])
Igor
Тут оптимизация не имеет ни какого смысла ... потому что в условии максимальное N = 500 просто делаешь предподсчет и зачем тл и память не понятно ;)
Igor
хотя по скольку тестов голяк может где и накосячил ;( ... не люблю писать такие задачи без тестов ;) ... проверять дольше чем кодить.
m700
Igor
правильное решение ;)
Igor
даже наверное правильнее моего ;)
m700
Igor
ну в очереди должны быть только убувающие значения ... поэтому чистая очередь там не подходит. нужно и спереди и сзади прости что скажешь ;)
m700
m700
А надо как?
Mikhail
Igor
Igor
ты каждый раз будешь искать максимум из n/2 элеметов и делать это будешь n/2 раз ... т.е n**2/4 грубо.
m700
это понятно
m700
а избежать как?
Mikhail
Igor
это понятно
в деке храним последовательность убывающих максимумов.
когда подходит максимум забираем слева ... когда приходит новое число вставлем его так чтобы поддерживать последовательность максимумов ... для этого из деки справа попаем все значения меньшие чем наше число
m700
спасибо, пойду у гоши дударя посмотрю гайд для джунов об этом
Igor
это вроде классика ща попробую найти
m700
Никогда не использовал, и в школе чтото не помню ее, надо было в вузе пары не прогуливать)
Шаман Каган
Igor
Maksim Pozharskiy
может кто нибудь намекнуть в чем проблема может быть?
Дурацкая вещь в том что степик не позволяет узнать какое там число подается во втором тесте на вход.
Может кто делал эту задачу.
Maksim Pozharskiy
Maksim Pozharskiy
Вроде дебажу с разными тестовыми числами и везде правильно показывает
Igor
там идея что времени может быть больше суток ... и надо толи убирать эти часы .. толи наоборот оставлять
Igor
я тоже ебался когда то с этим
Maksim Pozharskiy
В условии сказано что k меньше 86399с, т.е. 1 сутки это максимум
Igor
а тогда я не знаю .. в пайтоне была такая дичь
m700
Mikhail
Maksim Pozharskiy
получить секунды из 5 значного числа как из примера
Но число не факт что пятизначное будет, спс, понял
Agent_RBY_
Как-то чат за последнюю неделю стал больше задачек решать. Не уж то все умными стали?
Mikhail
m700
Mikhail
Maksim Pozharskiy
Все еще не понял, если честно.
Я пытался понять откуда из этого примера взялось 57 и подумал что это последние 2 цифры подаваемого на вход числа.
Но походу чет ваще не то
Mikhail
Igor
Шаман Каган
https://t.me/whackdoor/3622
Шаман Каган
(сорян если нельзя такое постить ) - но мне зашло, хоть так книжку прочту
Igor
я хз кем нужно быть чтобы книжку по сообщению в день читать ;) ... я если художку читаю на выходных то 2-3 книги проглатываю на изи ;) а техническую так вообще не почитаешь
Agent_RBY_
Техническую сложно за один заход прочитать, потому что обычно хочется попрактиковать информацию, полученную из книги)
Igor
ну иногда нужно бэктрекать ;)
Vladimir
Всем привет. Работаю в Eclipse, на строчке "Scanner scan = new Scanner(System.in);" выдает ошибку "Resource leak: 'scan' is never closed". Погуглил, люди пишут, что ресурс надо закрывать. Я не понял, что значит "закрыть ресурс". Это типа из памяти его надо выгрузить?
Шурок
Vladimir
А минус почему?
Шурок
Это можно представить как водителя в автомобиле.
Никто другой не может сесть в туже машину, пока там есть уже водитель
Шурок
- потому что кто мешает быть водителю до конца поездки 1?
Vladimir
А, нужно обнулить значение переменной, чтобы другие модули, не дай бог, её значением не воспользовались?
Vladimir
очистить ячейку памяти
Шурок
Шурок
За грязную очистку памяти тебе в другие языки
Vladimir
А что такое "грязная очистка памяти"? :)
Шаман Каган