首页 > 试题广场 >

比大小

[编程题]比大小
  • 热度指数:2792 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解

给定一个整数数组,返回一个数组。该返回数组中第i个数字为,原数组中第i个位置的数字至少往右走多少步才能遇到比它大的数字。如果遇不到或者已经处于最右的位置,则置为-1


输入描述:

输入为多行,第一行为一个整数N,1≤N≤106

接下来一共有N行,每一行为一个整数M,0≤M≤232-1



输出描述:

输出 N 行,每行一个数字表示转换之后的数组

示例1

输入

5
91
10
3
22
40

输出

-1
2
1
1
-1
头像 王清楚
发表于 2020-09-23 16:00:09
利用栈来操作,如果当前入栈的元素比栈顶元素大,那这个元素就是栈顶元素右边第一个比栈顶元素大的元素。如果当前元素比栈顶元素小。或者栈为空,那当前元素入栈。 #include<iostream> #include<stack> #include<vector> usi 展开全文