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

优品ppt模板免费下载官网seo策略是什么意思

优品ppt模板免费下载官网,seo策略是什么意思,盘锦如何做百度的网站,captcha wordpress学习资料:代码随想录 单调栈适合找左边或右边比当前大或小的元素 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://www.dtcms.com/wzjs/33798.html

相关文章:

  • 网站建设联系网络搜索关键词排名
  • 做外贸的阿里巴巴网站是哪个好站长工具网站备案查询
  • 免费的个人网站注册深圳网络营销推广公司
  • 杭州网站制作哪家好苏州关键词优化软件
  • 大庆建设集团网站互联网平台
  • 网站建站专家制作网站免费
  • 观澜网站制作佛山百度seo代理
  • 怎么搭建个人网站福州seo优化
  • 网站建站流程有哪些百度竞价登录
  • 企业运营管理岗位职责app排名优化
  • 国家网站icp备案查询郑州seo询搜点网络效果佳
  • wordpress发布公告网站seo是什么意思
  • 中国电子商务公司排名搜索 引擎优化
  • 去年做的电子请帖怎么找原网站互联网品牌营销公司
  • pc端和手机端网站建设我要推广网
  • 部门做网站优点seo关键词选取工具
  • 中国建设投资集团 网站首页给大家科普一下b站推广网站
  • 网站建设毕业设计总体规划站长seo综合查询工具
  • 搜书网站 怎么做竞价关键词优化软件
  • 2022年小规模企业所得税怎么征收淘宝标题优化网站
  • 编程零基础入门课程人员优化方案怎么写
  • 网站优化具体怎么做韩国热搜榜
  • 四大网站是哪四大深圳今日重大新闻
  • 哈尔滨整站优化舆情报告
  • 营销型网站建设公司外贸营销策略都有哪些
  • 推广普通话的内容郑州seo优化培训
  • 怎么制作自己的网页网站首页河北网站建设公司排名
  • 移动应用开发公司网站模板shopify seo
  • 天津百度网站快速排名百度竞价排名收费标准
  • 建设银行房金部网站营销对企业的重要性