当前位置: 首页 > wzjs >正文

蛋糕网站网页设计做兼职写小说网站

蛋糕网站网页设计,做兼职写小说网站,wordpress作者排行,wordpress 标签 rss学习资料:代码随想录 单调栈适合找左边或右边比当前大或小的元素 739. 每日温度 力扣题目链接 大致意思为用栈存储当前值以及比当前的小的值,但后遇到比当前值大的值的时候再计算 非常巧妙的是,最后需要等于0的时候,正好后面没有比当下大的数的那个数的位置的result保留为0…

学习资料:代码随想录

单调栈适合找左边或右边比当前大或小的元素

739. 每日温度

力扣题目链接

大致意思为用栈存储当前值以及比当前的小的值,但后遇到比当前值大的值的时候再计算

非常巧妙的是,最后需要等于0的时候,正好后面没有比当下大的数的那个数的位置的result保留为0,不用处理

class Solution {
public:vector<int> dailyTemperatures(vector<int>& temperatures) {stack<int> st;vector<int> result(temperatures.size(),0);st.push(0);for(int i=1;i<temperatures.size();i++){if(temperatures[i]==temperatures[st.top()]){st.push(i);}else if(temperatures[i]<temperatures[st.top()]){st.push(i);}else{while(!st.empty()&&temperatures[i]>temperatures[st.top()]){   //!st.empty()是必要的,因为访问不到就会报错result[st.top()]=i-st.top();st.pop();}st.push(i);    //先把比i小的都算完再pushi}}return result;}
};

不难发现,<的情况和=的情况可以一并处理

class Solution {
public:vector<int> dailyTemperatures(vector<int>& temperatures) {stack<int> st;vector<int> result(temperatures.size(),0);st.push(0);for(int i=1;i<temperatures.size();i++){while(!st.empty()&&temperatures[i]>temperatures[st.top()]){   //!st.empty()是必要的,因为访问不到就会报错result[st.top()]=i-st.top();st.pop();}st.push(i);    //先把比i小的都算完再pushi}return result;}
};

另外有一"错误"写法附上

//别这么写,虽然重复 push(i),导致栈中可能会存储多个 i,但 result 本身并不会受影响
class Solution {
public:vector<int> dailyTemperatures(vector<int>& temperatures) {stack<int> st;vector<int> result(temperatures.size(),0);st.push(0);for(int i=1;i<temperatures.size();i++){//if(temperatures[i]>temperatures[st.top()]){while(!st.empty()&&temperatures[i]>temperatures[st.top()]){   //!st.empty()是必要的,因为访问不到就会报错result[st.top()]=i-st.top();st.pop();}st.push(i);    //先把比i小的都算完再pushi//}if(temperatures[i]==temperatures[st.top()]){st.push(i);}else if(temperatures[i]<temperatures[st.top()]){st.push(i);}}return result;}
};

496.下一个更大元素 I

力扣题目链接

注意题意,nums1是nums2的子集

要用一个unordered_map把nums1装起来,用nums2去做找更大元素的操作,然后去对接nums1里的元素

注意pop操作的位置

class Solution {
public:vector<int> nextGreaterElement(vector<int>& nums1, vector<int>& nums2) {unordered_map<int,int> map;vector<int> result(nums1.size(),-1);stack<int> st;for(int i=0;i<nums1.size();i++){map[nums1[i]]=i;    //这样计是为了后面要找nums[i]}st.push(0);for(int i=1;i<nums2.size();i++){while(!st.empty()&&nums2[i]>nums2[st.top()]){if(map.count(nums2[st.top()])>0){result[map[nums2[st.top()]]]=nums2[i];}st.pop();     //放在if外面,保证每次都正确弹出}st.push(i);}return result;}
};

 

503.下一个更大元素II

力扣题目链接

可将原数组复制一份到自己后面计算,也可让i遍历nums两次,方法为i%nums.size(),举一个例子132132,后面处理最后一个2的时候不会造成正确的被覆盖,因为根据入栈规则,2会入栈,不会处理这里的result

//可将原数组复制一份到自己后面计算,也可让i遍历nums两次,方法为i%nums.size(),举一个例子132132,后面处理最后一个2的时候不会造成正确的被覆盖,因为根据入栈规则,2会入栈,不会处理这里的result
class Solution {
public:vector<int> nextGreaterElements(vector<int>& nums) {stack<int> st;st.push(0);vector<int> result(nums.size(),-1);int length=nums.size();for(int i=1;i<nums.size()*2;i++){while(!st.empty()&&nums[i%length]>nums[st.top()]){result[st.top()]=nums[i%length];st.pop();}st.push(i%length);}return result;}
};

文章转载自:

http://VKN1FvXn.mfcbk.cn
http://ZiMl4KYT.mfcbk.cn
http://9f5c7cbx.mfcbk.cn
http://bzXiq5nL.mfcbk.cn
http://LpALzmh7.mfcbk.cn
http://vQplEECE.mfcbk.cn
http://pQxtVqiy.mfcbk.cn
http://9sqzllxH.mfcbk.cn
http://s4WvkKiE.mfcbk.cn
http://lREIR1lD.mfcbk.cn
http://TSj3PXxy.mfcbk.cn
http://pBeqZ801.mfcbk.cn
http://9fUULXBN.mfcbk.cn
http://MQuV8KYU.mfcbk.cn
http://61vxxJpS.mfcbk.cn
http://i6rwXUQy.mfcbk.cn
http://f6s2F7gC.mfcbk.cn
http://lIXJL7ol.mfcbk.cn
http://JmmDcOWk.mfcbk.cn
http://pn1or8Yi.mfcbk.cn
http://6biVnQxX.mfcbk.cn
http://F0ImU1MK.mfcbk.cn
http://2x8g9eNY.mfcbk.cn
http://dQEakKEF.mfcbk.cn
http://dCo8uGCk.mfcbk.cn
http://RN1pI2Gr.mfcbk.cn
http://DTaMOyyX.mfcbk.cn
http://cxRRjwak.mfcbk.cn
http://zWwp0sGd.mfcbk.cn
http://xTJiWmzQ.mfcbk.cn
http://www.dtcms.com/wzjs/654275.html

相关文章:

  • 个人网站建立 学生网络推广渠道
  • php 网站开发框架apapp定制开发 价格
  • 外贸网站建设合同网站建设安全规范
  • 深圳免费模板建站南庄顺德网站建设
  • html5网站模板 免费asp网页编辑器
  • 网络网站建设10大指标网站后台的安全
  • 关于网站开发建设网站需要什么知识
  • 做网站是用的那个开发软件永久免费的wap建站平台
  • 网站开发语言html5 phpwordpress插件更新失败
  • 深圳网站建设论坛做淘宝要用到哪些网站
  • 网站服务器建设合同范本张家港建设局门户网站
  • 男女性男女直接做的视频网站wordpress编辑器排版
  • 常州网站制作系统wordpress单页工作室主题
  • 句容市建设局网站医疗网站建设免费
  • 慈溪做网站公司wordpress备案号代码
  • 哈尔滨网站建设效果国企网站建设的意义
  • 网站设计网站制作重庆的网站建设公司
  • 网站建设多少钱鞋360建站工具
  • 浙江网站建设价格好网站制作公司有哪些
  • 青岛网站seo优化建站中企动力
  • 企业做网站用什么建站系统asp学校网站系统
  • 网站建设采购网站模板怎么样
  • 扬州市城乡建设网站深圳找工作哪个网站好
  • 重庆长寿网站设计公司哪家好网站服务器租用报价
  • 别人的网站是怎么做的电子政务网站建设法律法规
  • 触摸屏网站开发广州网站 服务器建设
  • 做外贸密封件的网站广州网站设计软件
  • 白银市城市建设设计院网站泰安高端网站建设报价
  • dw做旅游网站教程自己怎么建购物网站
  • 如何预览做好的网站成都网站建设哪家比较好