Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
например в неделю (время за которое решил бы его средний сотрудник на эту должность умноженную на два)
что бы оценить как кандидат может себя вести в нервно-стрессовой ситуации.
INSERT INTO all_words_1 SELECT * FROM words_1;
INSERT IGNORE INTO all_words_1 SELECT * FROM words_2;
INSERT INTO all_words_2 SELECT * FROM words_2;
INSERT IGNORE INTO all_words_2 SELECT * FROM words_1;
(select test2.word, test2.num from test2 left join test1 using(word) WHERE test1.word IS NULL)
UNION
(select test1.word, test1.num from test1 left join test2 using(word));
create table words as select * from ((select * from words1) union (select * from words2)) as t group by word

public Collection<Record> merge(Collection<Record> a, Collection<Record> b) {
Map<String, Record> map = new HashMap<String, Record>();
for (Record r : b)
map.put(r.word, r);
for (Record r : a)
map.put(r.word, r);
return map.values();
}
тогда как решение на хеш-таблицах — O(N).
Сортировкой слиянием можно сортировать сколь угодно большие данные, все их закачивать в память не надо.
Да, инкапсуляция — это важный инструмент ООП, но если программист всю жизнь писал без ООП, то что, он теперь плохой?
На мой взгляд не каждый программист все это в совершенстве должен знать.Очень сомнительно. Перечисленное — базовые знания (считай вопросы на джуниора). Если программист базой не обладает, то нафиг надо.



case class Cell(col: Int, row: Int, colspan: Int, rowspan: Int)
val allCells: Set[Cell] = ???
val usedRows = allCells.map{ c => c.row + c.rowspan - 1 }
val usedColumns = allCells.map{ c => c.col + c.colspan - 1 }
val maxRow = usedRows.max
val maxCol = usedColumns.max
// Эти удалить:
val notUsedRows = (1 until maxRow) filterNot usedRows
val notUsedColumns = (1 until maxCol) filterNot usedColumns
val allCells: Set[Cell] = ???
val maxRow:Int = ???
val maxCol:Int = ???
val (notUsedRows, notUsedColumns) = allCells.foldLeft( (1 until maxRow).toSet -> (1 until maxCol).toSet ){
case ((rs, cs), c) => (rs - (c.row + c.rowspan - 1), cs - (c.col + c.colspan - 1))
}
Если заранее известно количество строк и столбцов ...
usedRows и usedColumns вот так:case class Cell(col: Int, row: Int, colspan: Int, rowspan: Int)
val allCells: Set[Cell] = ???
val maxRow = ???
val maxCol = ???
val usedRows = allCells.map{ c => c.row }
val usedColumns = allCells.map{ c => c.col }
// Эти удалить:
val notUsedRows = (1 until maxRow) filterNot usedRows
val notUsedColumns = (1 until maxCol) filterNot usedColumns
У меня голова забита задачами другой тематикину знаете. В этом смысл работы — переключатся на нужную задачу и думать как её решить. Или Вы объясняете боссу о некоторых задачах — что вы не можете их сделать в срок или сделать вообще — потому что голова другим забита, и вам нужно сосредоточится? Это несерьезно. Так же несреьезно как думать что к каждой задаче надо сходу решение находить. Я думаю мало кого волнует что вы делали последние 4 года или вчера вечером и чем у вас голова забита. Если задача есть её надо решать, возможно долго и сложно — но именно отсюда знания и берутся.
Так же несреьезно как думать что к каждой задаче надо сходу решение находить.
И в конце концов на собеседоваиях в основном хотят увидеть как вы решаете задачи, а не решение, ход ваших мыслей и рассуждений.
Две задачки для собеседования разработчиков