М.Двач / Программирование

Этого треда уже нет.
Это копия, сохраненная 31 июля 2021 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.

15 Кб, 640x252
Помогите решить задачу 15 июня, 21:32 2069556 В конец треда | Веб

Аноны, помогите новичку-дурачку решить задачу на JS.

Ответы696736972270987

2 15 июня, 21:35 2 2069560

Если я правильно понимаю, там надо пройтись циклом по значениям, которые хранит массив, сравнить их, и если совпадают, то переменная, хранящая значение "максимум людей" ++. Но как это оформить в коде, я так и не понял.
Как это записать, аноны? Выручайте, вся надежда на вас! С меня океан благодарности!

3 15 июня, 21:36 3 2069562

бамп

4 15 июня, 21:40 4 2069566

бамп

5 15 июня, 21:45 5 2069574

бамп

6 15 июня, 21:51 6 2069585

бамп

7 15 июня, 22:01 7 2069606

Хоть кто-нибудь, помогите решить эту блядскую задачу.

8 15 июня, 22:17 8 2069629

Heeeeeelp

9 15 июня, 22:30 9 2069643

Помогите

10 15 июня, 23:03 10 2069673

>>2069556 (OP)
Надо завести словарь и считать количества, потом найти максимальное.
Можно сгенерировать массив со всеми значениями, а потом найти элемент с максимумом вхождений, но это похуже.

11 15 июня, 23:42 11 2069722

>>2069556 (OP)
для каждого интервала [x, y) добавить в новый массив (x, 1) (y, 0)
отсортировать этот новый массив, заметь что я наперенно добавил второй конец с 0, чтобы в отсортированном массиве закрывались старые интервалы в начале, потому что из второго примера следует что в момент y чел уже не находится в комнате, поэтому его нужно удалить прежче чем добавлять новых людей.

дальше завести счетчик count и обойти этот массив очевидным образом.
для элемента (x, type)
if (type == 0) count++;
else {
res= max(res, count)
count--;
}

и в конце return res;

Ответы69974

12 16 июня, 01:13 12 2069778

Вот держи, наговнокодил тебе. Ну зато без сортировки и за О(n), лол

let arr = [[2,10],[3,4], [6,9]];
let enter = [];
let exit = [];
let count = 0;
let maxcount = 0;

for (let i=0; i<arr.length;i++) {
if (enter[arr[0]]!==1)
{enter[arr[0]] = 1;}
else {enter[arr[0]]++;}
if (exit[arr[1]]!==1)
{exit[arr[1]] = 1;}
else {exit[arr[1]]++;}
}

for (let j=1; j<=24; j++) {
if (enter[j] >= 1)
count = count + enter[j];
if (exit[j] >= 1)
count = count - exit[j];
if (count > maxcount)
maxcount = count;

}

console.log(maxcount);

12 16 июня, 01:13 12 2069778

Вот держи, наговнокодил тебе. Ну зато без сортировки и за О(n), лол

let arr = [[2,10],[3,4], [6,9]];
let enter = [];
let exit = [];
let count = 0;
let maxcount = 0;

for (let i=0; i<arr.length;i++) {
if (enter[arr[0]]!==1)
{enter[arr[0]] = 1;}
else {enter[arr[0]]++;}
if (exit[arr[1]]!==1)
{exit[arr[1]] = 1;}
else {exit[arr[1]]++;}
}

for (let j=1; j<=24; j++) {
if (enter[j] >= 1)
count = count + enter[j];
if (exit[j] >= 1)
count = count - exit[j];
if (count > maxcount)
maxcount = count;

}

console.log(maxcount);

Показать весь текст
Ответы6978469829

13 16 июня, 01:19 13 2069784

>>2069778
а теперь arr = дерьмо размером 10^6 из пар (a, b) где a, b числа от 0 до 2^64

ой, а что же делать? как получить линию?

Ответы69829

14 16 июня, 08:18 14 2069829

>>2069778
Макаба съела индексацию. Короч, там где цикл фор двойная индексация - первый индекс равен i.
>>2069784
>arr = дерьмо размером 10^6
Ну и?
У меня один проход по этому массиву.
>где a, b числа от 0 до 2^64
Это была бы другая задача. Из условия ясно, что a, b - это время, которое может быть только от 1 до 24.

Ответы69839

15 16 июня, 08:45 15 2069839

>>2069829
временем может быть и unix timestamp например.
или микросекунды в пределах дня и т.д.

Ответы69841

16 16 июня, 08:54 16 2069841

>>2069839
>временем может быть и unix timestamp например.
>или микросекунды в пределах дня
Просто переводим все в часы и дальше работаем как обычно.
Проблемс?

Ответы69859

17 16 июня, 09:33 17 2069859

>>2069841
промежуток может быть > 1 дня.
Один хуй надо уточнять условия, мб твой вариант и подразумевался.

Ответы69878

18 16 июня, 10:02 18 2069878

>>2069859
Ну значит будет не 24 часа, а количество дней *24.
При переводе в часы сразу и запишем в таком виде.
>надо уточнять условия
Ну так там все ясно из примеров ввода.
А вообще кидай свой вариант, если знаешь как лучше.

17 Кб, 442x205
19 16 июня, 11:05 19 2069915

Простите, что на другом языке, все-таки задача про алгоритмы, а не про особенности языка.
Скажите, пожалуйста, можно ли решить эту задачу не за квадратичное время? Я не догадался.

Ответы6994369948

17 Кб, 444x206
20 16 июня, 11:36 20 2069943

>>2069915
Обосрался, порядок важен, вот так должно быть.

21 16 июня, 11:41 21 2069948

>>2069915
Ну я вот тут решил за О(n), правда наговнокодил.
А у тебя решено неправильно.
Вот такой массив сломает твою программу
[2,7], [3,8], [4,9], [5,10]

Ответы69952

22 16 июня, 11:47 22 2069952

>>2069948
Я уже осознал свою ошибку и исправился.
Не понимаю петушиный твой язык, можешь словами описать алгоритм? Такое чувство, что нихуя не за O(N).

Ответы6997469988

51 Кб, 555x689
23 16 июня, 12:12 23 2069974

>>2069952
там O(n) если допустить, что значения интервалов в маленьком диапазоне.

>>2069722
здесь же (на картинке то же самое) nlogn. Это оптимально для произвольных значений интервалов.

24 16 июня, 12:20 24 2069988

>>2069952
>Я уже осознал свою ошибку и исправился.
Чего ты там исправился, у тебя код такой же остался, ты зачем-то сам массив руками подогнал под код.

Ответы69993

25 16 июня, 12:22 25 2069993

>>2069988
Вы долбоеб и ничтожество. Я поменял массив, потому что на нем первый код неправильно работал. Второй код работает правильно. Они различаются.

Ответы69998

26 16 июня, 12:30 26 2069998

>>2069993
Пиздец ты дегенерат конченый, конечно.

Ответы70000

27 16 июня, 12:31 27 2070000

>>2069998
Злобная и тупая мразь, вот ты кто!

Ответы70024

28 16 июня, 12:43 28 2070024

>>2070000
Ебаный кретин, чтоб ты сдох мразь.
Рака яиц тебе, гнида

33 Кб, 803x361
29 17 июня, 10:10 29 2070987

>>2069556 (OP)

Ответы71187

30 17 июня, 13:14 30 2071187

>>2070987
а если перенести [1, 3] во втором примере в конец списка?

Ответы71272

46 Кб, 806x501
31 17 июня, 14:02 31 2071272

>>2071187

32 17 июня, 16:38 32 2071474

For fufufuf

33 18 июня, 12:19 33 2072224

For

Тред утонул или удален.
Это копия, сохраненная 31 июля 2021 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.

« /pr/В начало тредаВеб-версияНастройки/a//b//mu//s//vg/Все доски

Пользуетесь скринридером — пишите, что можно улучшить.
Host-Food.ru — надёжный хостинг от 12 руб/мес | Free DNS
Зеркала М.Двача: m2ch.hk, m2ch.lib, m2chfapiswfw2wcakptqp4o6ltgchvjuxfab7urxlduraomtlnhw5xad.onion