Я столкнулся с вопросом в Интернете: найдите любую подпоследовательность увеличения с размером 3 в неупорядоченном массиве, используя сложность времени O (n). (просто нужно вернуть один действительный результат)найти любую подпоследовательность увеличения с размером 3 в неупорядоченном массиве
For example:
1 2 0 3 ==> 1 2 3
2 4 7 8 ==> 2 4 7; 4 7 8; 2 4 8 (anyone of them is Okay)
Это довольно относительно длинной подпоследовательности увеличения. Но это также очень специфично: мы просто хотим размер 3. Я выбрал O (N) решение, которое требует сканирования массива дважды.
The idea:
(1) For each element, find is there any one smaller than it on the left side, is there any one larger than it on the right side.
(2) We can compute a minimum pre-array and a maximum post-array as pre-processing. For example:
1 2 0 3 ==> minimum pre-array: none 1 1 0
1 2 0 3 ==> maximum post-array: 3 3 3 None
Мне интересно, есть ли другие решения для этого?
ли последовательность должна удовлетворять условию
, скажем, a Fihop
Вам нужны все подпоследовательности? Найти, если он существует? –