首页 > 其他分享 >单调栈(查找一个最大差值或查询某个位置左右两侧比他大(或小)的数的位置)

单调栈(查找一个最大差值或查询某个位置左右两侧比他大(或小)的数的位置)

时间:2023-08-15 13:55:37浏览次数:31  
标签:emplace int 位置 back St 查找 差值 ans prices

leetcode 121.买卖股票的最佳时机

class Solution {
public:
    int maxProfit(vector<int>& prices) {
        int ans = 0;
        vector<int> St;
        prices.emplace_back(-1); //为了结果的必然出现
        for (int i = 0; i < prices.size(); ++ i){
            while (!St.empty() && St.back() > prices[i]){//维护这个递增栈 
                ans = std::max(ans, St.back() - St.front()); 
                St.pop_back();
            }
            St.emplace_back(prices[i]);
        }

        return ans;
    }
};

标签:emplace,int,位置,back,St,查找,差值,ans,prices
From: https://www.cnblogs.com/skiesclear-639/p/17631112.html

相关文章

  • 182. 查找重复的电子邮箱
    表: Person+-------------+---------+|ColumnName|Type|+-------------+---------+|id|int||email|varchar|+-------------+---------+id是该表的主键列。此表的每一行都包含一封电子邮件。电子邮件不包含大写字母。编写一个SQL查询......
  • 使用 JScript 查找操作系统名称/版本
    varwbemFlagReturnImmediately=0x10;varwbemFlagForwardOnly=0x20;varobjWMIService=GetObject("winmgmts:\\\\.\\root\\CIMV2");varcolItems=objWMIService.ExecQuery("SELECT*FROMWin32_OperatingSystem","WQL",......
  • 一个含有奇数和偶数的数组,在js中如何对它进行排序,使得其中奇数升序,偶数还在原来的位置
    一个含有奇数和偶数的数组,在js中如何对它进行排序,使得其中奇数升序,偶数还在原来的位置?ZWMLLL于2019-05-0912:00:00发布1222收藏1文章标签:JS版权思路:我们可以返回数组array中的奇数,形成一个新的奇数odd数组(利用filter()返回),同时在建立一个位置place数组来保存每个奇数的位置......
  • SAP UI5 manifest.json 里定义的 sap.ui.viewExtensions 区域的解析代码位置
    笔者这篇教程介绍了如何在SAPFioriElements应用的manifest.json里注册Extensionfragment,从而给ListReport应用的Table区域新增自定义列:10.如何通过扩展(Extension)的方式给SAPFioriElementsListReport的表格新增列上图extends区域注册的Extension信......
  • 如何修改NuGet默认全局包文件夹的位置?
    由于一些历史原因,重装系统成为Windows用户解决疑难杂症的祖传手艺。受此影响,给硬盘分区几乎成为了一种执念,少则C、D两个盘,夸张一点的5~6个盘的也不是没有。PS:macOS和Linux一直都不鼓励给磁盘分区,虽然不禁止但也不提倡。随着云技术和宽带的提升,越来越多的人更喜欢把自己认为比较......
  • 查找目录内制定大小文件并显示
     使用[python]在[Windows]系统下进行编程,要求实现:[查找目录内所有大于1GB的文件,并提供文件名、路径和文件大小的列表便于查看]在Windows系统下,你可以使用Python的os和psutil库来实现这个任务。os库可以让你访问操作系统的功能,包括读取文件和目录。psutil库可以用来获取系统信......
  • 1741. 查找每个员工花费的总时间
    1741.查找每个员工花费的总时间2023年8月13日21:39:211741.查找每个员工花费的总时间简单SQLSchemaPandasSchema表:Employees+-------------+------+|ColumnName|Type|+-------------+------+|emp_id|int||event_day|date||in_time......
  • 704. 二分查找
    参考链接:https://programmercarl.com/0704.二分查找.html#思路给定一个n个元素有序的(升序)整型数组nums和一个目标target,写一个函数搜索nums中的target,如果目标值存在,就返回下标,否则返回-1。tips:假设nums所有元素不重复n在[1,10000]之间nums的每个元素都将在[-9999,9999]之......
  • 查找算法——顺序查找
    基于无序链表的顺序查找:在查找中我们一个一个地顺序遍历符号表中的所有键并使用equals()方法来寻找与被查找的键匹配的键。无序链表查找的性能上面get()方法中查找第一个键需要1次比较,查找第二个需要2次比较,如此这般,平均比较次数为(1+2+...+N)/N,也就是(N+1)/2~N/2。比较的总次数......
  • C++STL库 二分查找,以及对set集合进行二分查找,来源于”leetcode7022. 限制条件下元素之
    C++的头文件<algorithm>中有用于二分查找的函数,lower_bound()、upper_bound()以及binary_search():lower_bound():返回大于等于目标值的第一个位置upper_bound():返回大于目标值的第一个位置,binary_search():若目标值存在则返回true,否则返回false参数列表:(起始位置,结束位置,目标值) ......