lostm1nd / HackBulgaria

Projects related to the courses at HackBulgaria
1 stars 0 forks source link

Corrupted Data Feedback #18

Closed RadoRado closed 10 years ago

RadoRado commented 10 years ago

Задачката работи и е добра написана.

Имам коментари по някои парчета код:

var studentId = checkin.fields.student,
      foundDuplicate;

Тук е добре да дадеш начална стойност на foundDuplicate иначе си стои просто undefined

Ти го инициализираш в цикъла, но може да си спестиш 1 проверка, ако му дадеш начална стойност.

Тук:

unique[studentId] = [];
unique[studentId].push(checkin);

Може да стане просто:

unique[studentId] = [checkin];

И като за край - пробвай да помислин една идея по-чисто решение, ползвайки groupBy :+1:

lostm1nd commented 10 years ago

Направих едно решение и с lodash. Като цяло ми изглежда по-бавно от първия вариант. Инициализирах foundDuplicate още при деклрацията, но не видях къде мога да си спестя проверка - просто не го инициализирам в if-a.

RadoRado commented 10 years ago

Определено е по-изчистено това с lodash-a.

Относно скорост, второто върви с O(n * lgN) заради това, че groupBy ползва set, за да търси.

Първото ти решение върви с O(N^2), тъй като за всеки checkin правиш пълна линейна проверка дали се повтаря.

Т.е второто е по-бързо :+1: