Day 52 单调栈 part01

news/2024/7/7 22:19:13

Day 52 单调栈 part01

  • 解题理解
    • 739
    • 496

2道题目
739. 每日温度
496. 下一个更大元素 I

解题理解

739

需要找的是当前位置右侧第一个大于它的下标,所以栈中存的是递增元素的下标,不递增的都pop()出来算距离。

class Solution:
    def dailyTemperatures(self, temperatures: List[int]) -> List[int]:
        ans = [0] * len(temperatures)
        stack = [0]
        for i in range(1, len(temperatures)):
            # if temperatures[i] <= temperatures[stack[-1]]:
            #     stack.append(i)
            # else:
            while len(stack) != 0 and temperatures[i] > temperatures[stack[-1]]:
                ans[stack[-1]] = i - stack[-1]
                stack.pop()
            stack.append(i)
        print(stack)
        return ans

496

核心过程跟上题一致,但总体过程分两步,第一步确定nums1的元素出现在nums2,第二步在nums2中找到当前元素右侧第一个比他的元素下标。

class Solution:
    def nextGreaterElement(self, nums1: List[int], nums2: List[int]) -> List[int]:
        answer = [-1] * len(nums1)
        stack = [0]
        for i in range(1, len(nums2)):
            if nums2[i] <= nums2[stack[- 1]]:
                stack.append(i)
            else:
                while len(stack) != 0 and nums2[i] > nums2[stack[- 1]]:
                    if nums2[stack[-1]] in nums1:
                        index = nums1.index(nums2[stack[-1]])
                        answer[index] = nums2[i]
                    stack.pop()
                stack.append(i)
        return answer

http://lihuaxi.xjx100.cn/news/1761439.html

相关文章

2023最新【支付测试】

引言&#xff1a;如今&#xff0c;随着非现金支付手段的不断推广和应用&#xff0c;“非现金社会”正在形成。非现金支付已成为日常生活中不可或缺的伙伴。那么&#xff0c;对于互联网产品来说&#xff0c;支付也是涉及到公司收入的一个重大环节。对于我们测试人员&#xff0c;…

O - Happy Matt Friends

思路&#xff1a; &#xff08;1&#xff09;条件及问题&#xff1a;给定N个数&#xff0c;找到异或值大于等于M的总方案数&#xff1b; &#xff08;2&#xff09;分析&#xff1a; 可以dfs&#xff08;&#xff09;枚举&#xff0c;超时&#xff1b;考虑dp,dp[i][j]描述在…

shell 随机数

方法一&#xff1a;使用/dev/urandom方法二&#xff1a;使用date %s1.随机生成一串数字2.随机生成一串小写字母3.随机生成数字与字母的组合 方法三&#xff1a;使用openssl rand 方法一&#xff1a;使用/dev/urandom [rootlocalhost shell]# tr -dc "0-9" < /dev…

【uniapp】解决在H5谷歌浏览器下 u-input 标签 设置只读后,click事件不生效

【问题描述】 谷歌浏览器更新后&#xff0c;h5模式下原本的input外层view中的click事件不触发了?? 但是更换浏览器后就可以&#xff0c;打包app也是正常可以触发的&#xff0c;本来是没打算兼容h5&#xff0c;既然遇到了就记录一下~ 【解决办法】 使u–input里写上readonly&…

将json数据导入到ES集群——解决方案对比填坑日记

需求 将写好的json数据。导入到es集群 数据说明 文件JSON数据&#xff0c;一行一个JSON。 {"id":"d2716ae8fba4e026c4bd9445c3f49e2c","lang":"zh","title":"吉美旅馆","content":"吉美..."}…

[CISCN2019 华北赛区 Day2 Web1]Hack World1

提示 基于布尔的盲注使用python脚本跑 这里已经提示flag在flag表在flag字段 首先输入1 2都能有回显 每当这个时候第一想到的都应该是基于布尔的盲注是否能使用 尝试fuzz 通过fuzz大概知道后续思路 应为过滤的比较全面所以放弃联合查询 报错查询 预设置 使用基于布尔的盲注…

北京皮肤性病科主任谭巍揭示:脖子赘生物形成的原因

在日常生活中&#xff0c;我们可能会注意到自己的脖子或身体其他部位出现一些赘生物。这些赘生物可能是良性的&#xff0c;也可能是恶性的&#xff0c;因此了解其可能的原因、进行正确的诊断以及选择合适的治疗方法至关重要。为了解答这个问题&#xff0c;劲松中西医医院皮肤性…

HarmonyOS应用开发Tabs组件的使用

Entry Component struct TabsPage {State currentIndex: number 0;private tabsController: TabsController new TabsController();private controller: TabsController new TabsController()/*** 自定义TabBar* param title* param targetIndex* param selectedImg* param …