Алгоритм возвышения человека

ВИнтервью о взломе кодов, четвертое изданиеесть такая проблема:

Цирк проектирует башню, состоящую из людей, стоящих на плечах другого человека. По практическим и эстетическим соображениям каждый человек должен быть как короче, так и легче, чем человек под ним или с учетом высоты и веса каждого человека в цирке, напишите метод вычисления максимально возможного числа людей в такой башне.

ПРИМЕР: Ввод (мас., Мас.): (65, 100) (70, 150) (56, 90) (75, 190) (60, 95) (68, 110)

Результат: самая длинная башня имеет длину 6 и включает в себя сверху вниз: (56, 90) (60,95) (65,100) (68,110) (70,150) (75,190)

Вот еерешение в книге

Шаг 1 Сортировка всех элементов сначала по росту, а затем по весу. Это означает, что если все высоты уникальны, то элементы будут отсортированы по их высоте. Если высоты одинаковы, элементы будут отсортированы по их весу.

Шаг 2 Найдите самую длинную последовательность, которая содержит увеличение высоты и увеличение веса. Для этого мы:

а) Начало в начале последовательности В настоящее время max_sequence пуст

б) Если для следующего предмета рост и вес не больше, чем у предыдущего предмета, мы помечаем этот предмет как «непригодный»

c) Если найденная последовательность имеет больше элементов, чем «максимальная последовательность», она становится «максимальной последовательностью»

г) После этого поиск повторяется с «непригодного предмета», пока мы не достигнем конца первоначальной последовательности

У меня есть несколько вопросов о его решениях.

Q1

Я считаю, что это решение неверно.

Например

(3,2) (5,9) (6,7) (7,8)

Очевидно, что(6,7) это непригодный предмет, но как насчет(7,8)? Согласно решению, оно НЕ подходит, так как его h и w больше, чем(6,7)Однако это не может рассматриваться в последовательности, потому что(7,8) не подходит(5,9).

Я прав?

Если я прав, что за исправление?

Q2

Я считаю, что даже если есть исправление для вышеуказанного решения, стиль решения приведет по крайней мереO(n^2)потому что это нужно повторять снова и снова, в соответствии с шагом 2-й.

Так возможно ли иметь решение O (nlogn)?

Ответы на вопрос(4)

Ваш ответ на вопрос