给定一个整数数组,返回一个数组。该返回数组中第i个数字为,原数组中第i个位置的数字至少往右走多少步才能遇到比它大的数字。如果遇不到或者已经处于最右的位置,则置为-1。
num = int(input())
block, stack, result = [], [], []
for i in range(num):
block.append(int(input()))
result.append(-1)
i = 0
while (i < num):
if (not (len(stack) == 0)) and (block[i] > block[stack[-1]]):
print(i)
print(stack[-1])
cur = stack.pop()
result[cur] = i - cur
else:
stack.append(i)
i += 1
for i in range(len(result)):
print(result[i])
num = int(input())
l = []
result = []
a=[]
for i in range(num):
l.append(int(input()))
for i in range(len(l)):
for j in range(i,len(l)):
if l[j] > l[i]:
result.append(j-i)
a.append(i)
break
print(a)
for i in range(len(l)):
if i not in a:
result.insert(i,-1)
for i in range(len(result)):
print(result[i])