Нужна помощь, чтобы преобразовать «найти k-й наименьший из двух отсортированных массивов» в «k-й самый большой» ⇐ C++
Нужна помощь, чтобы преобразовать «найти k-й наименьший из двух отсортированных массивов» в «k-й самый большой»
У меня есть код на C++, который находит k-й наименьший элемент двух отсортированных массивов за время O(log(m * n)). Я знаю, что это не самое оптимальное решение, и знаю, что его можно решить за O(log(min(m, n))), однако меня это пока не интересует.
Я хочу преобразовать эту функцию, чтобы она вместо этого возвращала k-й по величине элемент, и я изо всех сил пытаюсь заставить ее работать. Должно быть, нужно тщательно подправить некоторые сравнения здесь и там, но мне не удалось заставить это работать. Могу ли я получить здесь некоторую помощь?
#include #include #include #include #include использование пространства имен std; // скорость: O(log( m * n) )) // пробел: O(1) intsolveKthSmallest(vector& A, вектор& B, int k, int aStart, int aEnd, int bStart, int bEnd) { std::cout
У меня есть код на C++, который находит k-й наименьший элемент двух отсортированных массивов за время O(log(m * n)). Я знаю, что это не самое оптимальное решение, и знаю, что его можно решить за O(log(min(m, n))), однако меня это пока не интересует.
Я хочу преобразовать эту функцию, чтобы она вместо этого возвращала k-й по величине элемент, и я изо всех сил пытаюсь заставить ее работать. Должно быть, нужно тщательно подправить некоторые сравнения здесь и там, но мне не удалось заставить это работать. Могу ли я получить здесь некоторую помощь?
#include #include #include #include #include использование пространства имен std; // скорость: O(log( m * n) )) // пробел: O(1) intsolveKthSmallest(vector& A, вектор& B, int k, int aStart, int aEnd, int bStart, int bEnd) { std::cout
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Как я могу найти медиану двух отсортированных массивов со сложностью O (log (m + n))
Anonymous » » в форуме JAVA - 0 Ответы
- 29 Просмотры
-
Последнее сообщение Anonymous
-