Для каждого целого числа в массиве положительных целых чисел найдите индекс ближайшего целого числа, которое больше текущего целого числа. Кроме того, нам нужно искать ответ только слева от текущего целого числа.
Например -
Input array - [ 5, 4, 3, 6, 2, 3]
Output array - [ -1, 0, 1, -1, 3, 3]
Присвойте -1 тем числам, на которые нет ответа.
Существует простой метод O (n ^ 2), для каждого числа запускайте a для l oop от предыдущего числа до начала массива.
for(int i=0; i<n; ++i)
{
output[i] = -1;
for(int j=i-1; j>=0; --j)
{
if(input[j] > input[i])
{
output[i] = j;
break;
}
}
}
Этот метод неэффективен при большом n. Есть способ более действенный?