Сейчас было ещё одно собеседование с лайвкодингом
Теорию прям хорошо рассказал, а на лайвкодинге остановили выполнение, так как я начал писать решение с большой алгоритмической сложностью.
Я не силен в алгоритмической сложности, но как я понял - её можно было решить за один перебор, а у меня был перебор в переборе. Как-то так. Кстати давно хотел разобраться с алгоритмами и освоить базу, думаю лишним не будет.
Если хотите проверить себя, ниже кину код. Попозже я всё таки додумался, и правда решается за один перебор)
Суть задачи: Нужно привести исходный массив 'input' к виду 'outputExample'. Нужно обратить внимание, что если есть несколько записей за год/месяц, то они должны группироваться, как в примере.
const input = [
{ id: '1', data: '2024.01.15' },
{ id: '2', data: '2024.02.12' },
{ id: '3', data: '2024.03.28' },
{ id: '4', data: '2024.02.22' },
{ id: '5', data: '2024.05.31' },
{ id: '6', data: '2020.12.21' },
{ id: '7', data: '2021.09.13' },
{ id: '8', data: '2022.01.08' },
{ id: '8', data: '2019.01.08' },
];
const outputExample = {
2024: {
'01': [
{ id: '1', data: '2024.01.15' },
],
'02': [
{ id: '2', data: '2024.02.12' },
{ id: '4', data: '2024.02.22' },
],
'03': [
{ id: '3', data: '2024.03.28' },
],
'05': [],
},
2023: {...},
2022: {...},
2021: {...},
};
· 16.08.2024
Я в принципе не фронтендер и потихоньку забывюа тему решения подобных задач именно циклами. но по идее. чем тут группируются данные годом и месяцем. если они в тексте то первыми семью значениями. берешь первое смотришь на первые четыре знака - если ветка года есть смотримшь на последние два знака если ветка месяца есть кладешь туда этот эелемент. если ветки нет - создаешь. если ветки года не было. то создаешь ветку года и месяца. переходишь к следующему элементу. то есть по сути да один проход по массиву. на каждый элемент блок условных операторов 2-4 штуки лень точно считать.
0
ответить
коммент скрыт — часть юзеров считает его токсичным или некорректным
коммент удалён
· 16.08.2024
Да, все так, два условных оператора там получается.
0
ответить
коммент скрыт — часть юзеров считает его токсичным или некорректным
ответ удалён
· 16.08.2024
Ну собственно и есть банальная штука в один проход. если есть маленькое апи то и условных писать не надо. знавал один язык там существует/не существует вообще как класс отсутствовало. указываешь 3 ключевых значения и говоришь ВСТАВЬ он либо доавляет новое либо заменяетстарое. так и здесь у тебя есть значение и есть путь который ты можешь легко вычислить. и ты просто говоришь вставь этот элемент в эту ветку - и ветка либо существует и ты туда ставишь. или она автосоздается
0
ответить
коммент скрыт — часть юзеров считает его токсичным или некорректным
ответ удалён