LC记录2

(叠甲 纯属个人学习记录 如有雷同直接滑轨)美好的一天从不会做简单题开始

Leedcode496下一个更大元素 I

第一眼是暴力遍历,在nums2中找到nums1里元素的位置,再往后找大的,但一想复杂度不得是O(m*n),一看栈相关,感觉先可以从nums2里面优化,再对应nums1,但对应nums1复杂度不还是logmn嘛,看了题解才知道可以用unorder_map建立一个哈希表直接对应着找...最烦这种交叉题目 本来各个基础就不好

记一下单调栈的用法和哈希表的用法

 单调栈可以在时间复杂度为 O(n) 的情况下,找到元素左边或者右边最近的较小或者较大的元素。

个人认为重点在于 最近 和 配合hash表随时更新

  1. 最近就是  找左边,就从左向右构造,找右边,就从右向左构造。
  2. 如果更新后栈里面最后不为空,则能找到,记在hash表里面其他

其他

  1. #include <unordered_map>
  2. unordermap&unorderset 用法上:前者key值不同,value可同,后者key value都不能重复
  3. vector&stack stack不能遍历,没有迭代器

 
 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值