Мне нужно найти минимальный подмассив размера L, A[0:L], B[0:L] такой, чтобы в A было M различных элементов, которые больше, чем M различных элементов в B. Например, A > B[j] засчитывается, но я не могу снова использовать A или B[j]. Кроме того, подмассивы должны начинаться с начала массива.
Домашнее задание касается AVLTrees и Heap, поэтому я думаю, что решение будет включать один из них (для примера ниже я использовал Priority_queue из stl но на самом деле мне не разрешено использовать какой-либо контейнер из любой библиотеки, поэтому у меня уже есть реализация минимальной кучи, но для простоты понимания я использовал эквивалент stl). Также ожидается, что я решу вопрос, используя AVL Tree или Heap.
Ps. Я обнаружил, что массивы могут содержать повторяющиеся элементы.
Размеры A и B одинаковы, то есть: N.
Мне нужно найти решение, имеющее временную сложность O(N * logN * logM)
#include
#include
#include
int minLenOfSubarrays(std::span aArr, std::span bArr, int M)
{
const int N = aArr.size();
int count = 0;
int L = 0;
int left = M;
int right = N;
while(left b.top()){
count++;
a.pop();
b.pop();
}
else{
a.pop();
}
}
if(count >= M){
L = mid;
right = mid-1;
}
else{
left = mid+1;
}
}
return L;
}
int main(int argc, char* argv[]){
int aArr[] = {2,4,10,6,1,11};
int bArr[] = {3,5,8,9,7,12};
int M = 3;
std::cout
Подробнее здесь: [url]https://stackoverflow.com/questions/79139213/find-shortest-subarrays-a0l-b0l-where-m-different-elements-in-a-are-bigge[/url]
Мне нужно найти минимальный подмассив размера L, A[0:L], B[0:L] такой, чтобы в A было M различных элементов, которые больше, чем M различных элементов в B. Например, A[i] > B[j] засчитывается, но я не могу снова использовать A[i] или B[j]. Кроме того, подмассивы должны начинаться с начала массива. Домашнее задание касается AVLTrees и Heap, поэтому я думаю, что решение будет включать один из них (для примера ниже я использовал Priority_queue из stl но на самом деле мне не разрешено использовать какой-либо контейнер из любой библиотеки, поэтому у меня уже есть реализация минимальной кучи, но для простоты понимания я использовал эквивалент stl). Также ожидается, что я решу вопрос, используя AVL Tree или Heap. Ps. Я обнаружил, что массивы могут содержать повторяющиеся элементы. Размеры A и B одинаковы, то есть: N. Мне нужно найти решение, имеющее временную сложность O(N * logN * logM) [code]#include #include #include
int minLenOfSubarrays(std::span aArr, std::span bArr, int M) { const int N = aArr.size(); int count = 0; int L = 0;
int left = M; int right = N; while(left b.top()){ count++; a.pop(); b.pop(); } else{ a.pop(); } } if(count >= M){ L = mid; right = mid-1; } else{ left = mid+1; } } return L; }
int main(int argc, char* argv[]){
int aArr[] = {2,4,10,6,1,11}; int bArr[] = {3,5,8,9,7,12}; int M = 3;
Мне нужно найти минимальный подмассив размера L, A , B такой, чтобы в A было M различных элементов, которые больше, чем M различных элементов в B. Например, A > B засчитывается, но я не могу снова использовать A или B . Кроме того, подмассивы должны...
Я работаю над проектом, в котором создаю матрицу смежности городов, и мне нужно найти и распечатать до трех кратчайших путей между двумя городами на основе времени или стоимости. Я изо всех сил пытаюсь понять, какой самый простой способ сделать это....
Я генерирую файлы слов OpenXML (OOXML) с Java. Я хочу избежать запуска главах или таблиц в нижней части страницы, которая приведет к разделению их на следующую страницу. Поэтому мне нужно знать, где моя текущая позиция в IS, и добавить разбивки...
Я генерирую файлы слов OpenXML (OOXML) с Java. Я хочу избежать запуска главах или таблиц в нижней части страницы, которая приведет к разделению их на следующую страницу. Поэтому мне нужно знать, где моя текущая позиция на странице находится, и...