Я решил проблему Next Greater Element со ссылкой на этот вопрос от GeeksforGeeks. Я совсем запутался, чтобы найти временную сложность (Big O) для следующей задачи.
Было бы очень полезно, если бы кто-нибудь мог помочь мне в этом.
Вопрос:
Для данного массива выведите Next Greater Element (NGE) для каждого элемента. Следующий больший элемент для элемента x - это первый больший элемент с правой стороны от x в массиве. Элементы, для которых не существует большего элемента, рассматривают следующий больший элемент как -1.
Примеры:
a) Для любого массива самый правый элемент всегда имеет следующий больший элемент как -1.
b) Для массива, отсортированного по убыванию, все элементы имеют следующий больший элемент как -1.
Как найти временную сложность этого?
Это приемлемый способ решения этой проблемы?
int[] array = {20,10,5,3};
int len =array.length;
int[] temp = new int[len];
int j=0;
int i=j;
while(j<len-1){
++i;
if(i>=len){
System.out.println(array[j]+"----> -1");
j++; i=j;
continue;
}
if(array[j]<array[i]){
System.out.println(array[j]+"----> "+array[i]);
j++; i=j;
}
}
System.out.println(array[j]+"----> -1");