Владъ
Evgeniy
Evgeniy
Похоже вижу. Есть такие
Evgeniy
Evgeniy
m и n — ширина и высота матрицы
Bartsev
Все привет, подскажите, простая задача фильтровать массив пользователей вторым параметром динамический фильтр приходит, я решил вот таким способом https://replit.com/@shmel115/spy#index.js но не смог упростить, сейчас как я понимаю О(N*A) сложность?
Viktor
Viktor
Viktor
Ilia
@vitkarpov у тебя случайно брата в Москве нет? :) менеджер в автосалоне очень на тебя похож будто :))
Viktor
Viktor
Может это я. Прикидываюсь прогером, а сам в автосалоне фигачу.
Ilia
Viktor
Viktor
Если нет, то нет. Если да, то возможно.
Ilia
Viktor
Тогда нет 😃
Bartsev
Bartsev
Viktor
Пример можешь?
На литкоде не видел, но такую давали на фонскрине в Фейсбуке
Bartsev
Bartsev
И так по каждому юзеру
Bartsev
Viktor
Тогда сперва надо индексы построить, т.е. юзеры должны быть отсортированы и так для каждого фильтра.
Viktor
Заранее.
Viktor
Объектики по ссылке хранятся, так что как раз удобно эти индексы хранить с точки зрения памяти.
Alexandr
в сегодняшней follow up — сделать за один проход
так вот
for (i = 0; i < n/2; i++) { ... }
for (i = n/2; i < n; i++) { ... }
это один проход? 🤔
Порридж В Ко-ливинге
Alexandr
Владъ
Alexandr
slow fast не так работают
угу, в моем решении, это просто два указателя
var removeNthFromEnd = function(head, n) {
let slow = head;
let fast = head;
for (let i = 0; i < n; i++) {
fast = fast.next;
}
if (!fast) {
return head.next;
}
while (fast.next) {
fast = fast.next;
slow = slow.next;
}
slow.next = slow.next.next;
return head;
};
вот это 1 проход или 2?
Lynn «Кофеман»
Владъ
Владъ
Lynn «Кофеман»
return elem[filArr[i]] && elem[filArr[i]] === usersFilter[filArr[i]];
вот эта строчка внутри цикла убивает весь смысл цикла.
Владъ
Lynn «Кофеман»
Вообще, если в цикле есть return без if то это 99% логическая ошибка
mrFix
Всем привет.
Я как всегда с вопросом не по теме решения задачек. Но уж очень гложет любопытство.
Вопрос банален, ответ гуглил, но так и не ясно.
Вопрос про node.js:
Можно ли дописывать в json файл без чтения/парсинга/перезаписи?
Приму в дар любую инфу как это сделать или почему этот метод не актуален. Спасибо
mrFix
Я ради любопытства пробовал appendFile и писал, и все потом хорошо считалось. Но вот нигде нет использования такого метода, везде "читай, парсь, добавляй, перезаписывай"
Lynn «Кофеман»
Не могло оно хорошо считаться. Код в студию
Lynn «Кофеман»
Если мы говорим про объект, то как минимум надо удалить последнюю фигурную скобку вставить запятую, новые данные и новую скобку.
Т.е. технически можно не читать/парсить всё, но в общем случае можно получить невалидный json
mrFix
Да все топорно😂
AppendFileSync("main.json", "[")
AppendFileSync("main.json", JSON.stringify(obj))
AppendFileSync("main.json", "]")
Ilia
сделать из объект массив?
mrFix
Ну да, мне надо массив обьектов
Ilia
но зачем?
Lynn «Кофеман»
mrFix
Я даже оставлял весячую запятую в json файле и потом дописывал
mrFix
Ну вот я и спросил, есть ли способ и надо ли оно вообще
mrFix
Просто если нода жонглирует json файлами в несколько тысяч объектов как делать нечего, то тогда есесно не надо.
mrFix
mrFix
Lynn «Кофеман»
Тогда при чём тут парсинг?
Я думал мы говорим о дописывании новых данных в уже *существующий* *валидный* файл
Ilia
Парсинг
я понимаю что парсинг, я не понимаю зачем объект превращать в массив? или у тебя куча объектов, которые нужно объединить в массив?
Lynn «Кофеман»
Если ты про создание файла с нуля, то да, можно не создавать массив на 100500 элементов, писать 100500 раз по одному (например если элементы генерируются каким-то образом)
mrFix
Viktor
потому что сейчас выходит, что экономия только на стрингифае массива вокруг что ли?
Viktor
ну такое себе
mrFix
У меня задача такова: парсинг, запись в json. Объекты приходят пачкой по примерно 50 шт. Или можно вообще по одному. На выходе json с [{},{},{}]
Lynn «Кофеман»
Ну экономия будет на охрененной строке в которую сериализуется 100500 объектов разом.
mrFix
Допустим, надо до 10000 обьектов записать
Lynn «Кофеман»
Но по хорошему надо мерять и считать что важнее и что проще.
Viktor
любопытно померять, да.
mrFix
Это получается что проще все в памяти держать, складывать, а потом разово в json?
Viktor
mrFix
Вот и я задумался, но к сожалению скилов по замеру не имею. Сори
Viktor
а тут так заранее никто и не скажет. надо яндекс.танк натравливать 😉
mrFix
А так сказать "на глаз" какой алгоритм посоветуете?😁
Viktor
экстрасенсов нет 😃 я бы советовал не выдумывать странного unless you have a good reason to, как говорится. потому что если рядом с этим кодом нет ссылки на воспроизводимые перфоманс-тесты, то странно.
Viktor
типа через полгода откроешь сам и подумаешь «но... зачем?»
mrFix
Это кстати задачка на собес, так что всем полезно будет