Я пытаюсь найти самые большие числа K с учетом отсортированного массива.
пример: ввод -> [ 5, 12, 45, 32, 9, 20, 15] вывод -> K = 3, [45, 32, 20]
Код, который я написал до сих пор, возвращает самый большой элемент K, но он должен возвращать самые большие числа K. Любая помощь будет оценена по достоинству.
public static int max_Numbers(int [] p, int K, int firstNum, int lastNum)
{
int pivot = partitionArr(p, firstNum, lastNum);
int m = p.length - K;
if (m == pivot)
{
return p[pivot];
}
if(m > pivot)
{
return max_Numbers(p, K, pivot + 1, lastNum);
}
else
{
return max_Numbers(p, K, firstNum, pivot - 1);
}
}
O(N)
решения нет. СуществуетO(NlogK)
решение. Убедитесь, что вы поняли проблему. (Подсказка: если вы подставите определенное значение дляK
, это сделает проблему с решениемO(N)
.) - person Stephen C   schedule 17.03.2019N-K
. Что мне не хватает? - person selbie   schedule 17.03.2019