首页 > 其他分享 >503. 下一个更大元素 II

503. 下一个更大元素 II

时间:2023-07-03 23:13:09浏览次数:55  
标签:cur nums res 元素 503 II 更大 stack

labuladong 题解

难度中等

给定一个循环数组 nums ( nums[nums.length - 1] 的下一个元素是 nums[0] ),返回 nums 中每个元素的 下一个更大元素 。

数字 x 的 下一个更大的元素 是按数组遍历顺序,这个数字之后的第一个比它更大的数,这意味着你应该循环地搜索它的下一个更大的数。如果不存在,则输出 -1 。

 

示例 1:

输入: nums = [1,2,1]
输出: [2,-1,2]
解释: 第一个 1 的下一个更大的数是 2;
数字 2 找不到下一个更大的数; 
第二个 1 的下一个最大的数需要循环搜索,结果也是 2。

示例 2:

输入: nums = [1,2,3,4,3]
输出: [2,3,4,-1,4]

 

class Solution:
    def nextGreaterElements(self, nums: List[int]) -> List[int]:
        n = len(nums)
        stack = []
        res = [-1]*n
        for i in range(2*n):
            cur = nums[i%n]
            while stack and cur > nums[stack[-1]]:
                top = stack.pop()
                res[top] = cur
            stack.append(i%n)
        return res
            

 

标签:cur,nums,res,元素,503,II,更大,stack
From: https://www.cnblogs.com/zle1992/p/17524412.html

相关文章

  • 让IIS支持.NET Web Api PUT和DELETE请求
    前言    有很长一段时间没有使用过IIS来托管应用了,今天用IIS来托管一个比较老的.NETFx4.6的项目。发布到线上后居然一直调用不同本地却一直是正常的,关键是POST和GET请求都是正常的,只有PUT和DELETE请求是有问题的。经过一番思考忽然想起来了IIS默认情况下拒绝处理PUT和DELETE......
  • 26.数组名和指针(这里为指向数组首元素的指针)区别?
    二者均可通过增减偏移量来访问数组中的元素。数组名不是真正意义上的指针,可以理解为常指针,所以数组名没有自增、自减等操作。当数组名当做形参传递给调用函数后,就失去了原有特性,退化成一般指针,多了自增、自减操作,但sizeof运算符不能再得到原数组的大小了。......
  • overflow:hidden不会隐藏所有子元素
    overflow:hidden不会被隐藏的情况拥有overflow:hidden样式的块元素内部的元素溢出有时候不会被隐藏。当同时满足以下条件:拥有overflow:hidden样式的块元素不具有position:relative和position:absolute样式;内部溢出的元素是通过position:absolute绝对定位,并且该定位元素的包含块......
  • Python错误:selenium自带click方法点击不到元素
    问题描述:selenium自带click方法,有的时候不好用,元素定位到了,但是就是点不上。 解决办法:原因分析:点击不到元素!解决办法:(1).selenium自带的click()方法:fromseleniumimportwebdriverel=driver.find_element(By.ID,ID)#找到元素el.click()#执行点击缺陷:不稳定......
  • 19C-19.16 ORA-17503 ORA-27300 ORA-27301 ORA-27302
    ***alter日志告警2023-07-01T02:05:13.474592+08:00Errorsinfile/u01/app/oracle/diag/rdbms/dg/dg1/trace/dg1_ora_17925.trc:ORA-17503:ksfdopn:2Failedtoopenfile+DATA/dg/PASSWORD/pwddgORA-27300:OSsystemdependentoperation:openfailedwithstatus:13ORA-......
  • 实现 GitLab CI/CD 自动化发布网站至本地IIS服务器
    下面列出我本次使用的环境:操作系统:Windows11项目版本:.NETCore6.0脚本执行环境:PowerShell5.1.22621.963Web服务器:IIS10.0Gitlab:git.local 基本步骤配置GitLabCI/CDRunner  首先,在本地或公司内网的机器上设置一个GitLabCI/CDRunner,该Runner将用于执行CI/......
  • RAII技法的工具类scope_guard
    #pragmaonce/*************************************************************************************描述:RAII技法的工具类使用说明://资源释放voidfoo(){HANDLEh=OpenFile(...);ON_SCOPE_EXIT([&]{CloseHandle(h);});...//usethefile}//whenth......
  • C++ 惯用法之 RAII
    RAII(ResourceAcquisitionIsInitialization)资源获取即初始化,是C++中最基本、应用最广范的惯用法(idiom)之一。RAII的基本思想是通过构造/析构函数,对资源的获取/释放进行封装,然后借助局部对象的自动生命周期来管理资源。使用RAII可以让用户无需手动管理资源的获取/释放,减少出......
  • IOS开发-使用UIImageView加载网络图片
    使用UIImageView加载网络图片可以分为三步1.创建UIImageView实例:UIImageView*imgview=[[UIImageViewalloc]init];imgview.frame=CGRectMake((self.view.frame.size.width-100)/2,(self.view.frame.size.height-100)/2,100,100); 2.下载图片数据:NSUR......
  • IOS开发-UIImageView基本用法
    UIImageView是iOS中用于显示图像(图片、gif、svg等)的视图。它的主要功能有:1.显示图片UIImageView可以通过image属性显示一张UIImage类型的图片。可以是本地图片、从网络下载的图片等。2.设置填充模式可以通过contentMode属性设置图片在UIImageView内的显示和填充模式。内容......