首页 > 试题广场 >

下一个更大的数(二)

[编程题]下一个更大的数(二)
  • 热度指数:850 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
给定一个循环的数组 nums ,即 nums 的第一个元素可以视为是最后一个元素的下一个元素。返回 nums 中每个元素的后面第一个比他大的元素,如果不存在比他大的元素,则返回 -1。

例如,有数组 [2,3,4,1] 则返回 [3,4,-1,2] ,其中第一二个元素后面第一个比他们大的元素均是下一个元素,第三个元素是最大的,所以输出 -1,而最后一个元素的下一个元素认为是数组的第一个元素,因此是 2

数据范围:数组长度满足 ,数组中的元素满足
示例1

输入

[2,3,4,1]

输出

[3,4,-1,2]

说明

其中第一二个元素后面第一个比他们大的元素均是下一个元素,第三个元素是最大的,所以输出 -1,而最后一个元素的下一个元素认为是数组的第一个元素,因此是 2 
示例2

输入

[4,3,2,1]

输出

[-1,4,4,4]
头像 Luiz_Liu
发表于 2023-12-19 12:49:34
#include <stack> class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param nums int整型vector 展开全文
头像 牛客908031980号
发表于 2023-10-19 17:09:05
#include <vector> class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param nums int整型vector 展开全文
头像 牛客670592687号
发表于 2024-08-01 03:15:17
#include <cstddef> class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param nums int整型vector 展开全文
头像 fred-coder
发表于 2022-04-19 23:46:14
单调栈,由于数组是循环的,则将数组设置为两个自身相加,单调栈中的索引取 i % n 的值以获得补充的数组中的更大的数 # # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # @param nums int整型一维数组 # @return int整型一维数组 展开全文
头像 太阳hxy
发表于 2023-09-01 09:55:22
单调栈+断环为链 //定义一个手写栈,由一个数组和一个top指针组成 int skt[100005],top; class Solution { public: vector<int> nextBigger(vector<int>& nums) { 展开全文