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

做国外网站要注意什么济南软件公司排名

做国外网站要注意什么,济南软件公司排名,网站做网站反向代理违法,梁定然网页设计教程原理 单调栈的核心原理是#xff1a;在栈内保持元素的单调性#xff08;递增或递减#xff09; 单调递增栈#xff1a; 用于处理“下一个更小的元素”问题。当新元素比栈顶元素小或等于时#xff0c;直接入栈#xff1b;否则#xff0c;一直从栈顶弹出元素#xff0c…原理 单调栈的核心原理是在栈内保持元素的单调性递增或递减 单调递增栈 用于处理“下一个更小的元素”问题。当新元素比栈顶元素小或等于时直接入栈否则一直从栈顶弹出元素直到栈顶元素小于新元素或栈为空。 单调递减栈 用于处理“下一个更大的元素”问题。当新元素比栈顶元素大时一直从栈顶弹出元素直到栈顶元素大于新元素或栈为空然后将新元素入栈。 核心代码框架 #include vector #include stack using namespace std;vectorint nextGreaterElement(vectorint nums) {int n nums.size();vectorint res(n, -1); // 默认值为-1表示没有找到stackint stk; // 用于存储元素索引的单调栈for (int i 0; i n; i) {// 维护栈的单调递减性while (!stk.empty() nums[stk.top()] nums[i]) {int idx stk.top(); // 栈顶元素索引stk.pop();res[idx] nums[i]; // 找到了下一个更大的元素}stk.push(i); // 入栈当前元素索引}return res; } 739. 每日温度 class Solution { public:vectorint dailyTemperatures(vectorint temperatures) {int n temperatures.size();vectorint res(n,0);stackintstk;for(int i 0;in;i){// 递增while(!stk.empty() temperatures[stk.top()]temperatures[i]){int index stk.top(); // 栈顶元素stk.pop();res[index] i-index;//res[index] temperatures[i];}stk.push(i);}for(int i 0;in;i){coutres[i]endl;}return res;} };496.下一个更大元素 I 思路暴力法 直接足步循环 先找到和 nums1 对应的 nums2 数找到后在循环找更大的找到就退出 class Solution { public:vectorint nextGreaterElement(vectorint nums1, vectorint nums2) {int n nums1.size();int m nums2.size();vectorint res (n,-1); // -1代表没找到stackintstk;for(int i 0;in;i){int j 0;while(nums1[i] ! nums2[j]){j;}for(int k j1; km;k){if(nums2[k]nums1[i]){res[i] nums2[k];break;}}}return res;} };思路二单调栈 我们可以先对 nums2 进行单调栈找到他每个元素的的下一个更大的数 再根据 nums1 创建数组 class Solution { public:vectorint nextGreaterElement(vectorint nums1, vectorint nums2) {int n nums1.size();int m nums2.size();unordered_mapint, int nxetnum;vectorint res (n,-1); // -1代表没找到stackintstk;// 遍历 nums2for(int num : nums2){while(!stk.empty() stk.top()num){nxetnum[stk.top()] num;stk.pop();}stk.push(num);}// 如果没有更大元素则对应结果为 -1while(!stk.empty()){nxetnum[stk.top()] -1;stk.pop();}// 从nums1 中查找对应的for(int i 0;in;i){res[i] nxetnum[nums1[i]];}return res;} };503.下一个更大元素II 思路 因为可以循环直接将数组进行拼接这样就破解循环问题了就如同前面的每日温度问题了 class Solution { public:vectorint nextGreaterElements(vectorint nums) {int n nums.size();vectorintrealnums;// 暴力拼接for(int i 0; i2;i){for(int num:nums){realnums.push_back(num);}}vectorint res(2*n,-1);stackintstk;for(int i 0;irealnums.size();i){while(!stk.empty() realnums[stk.top()]realnums[i]){int index stk.top();stk.pop();res[index] realnums[i];}stk.push(i);}vectorintresnum;resnum.insert(resnum.end(),res.begin(),res.begin()n);return resnum;} };代码优化一下 class Solution { public:vectorint nextGreaterElements(vectorint nums) {int n nums.size();vectorintrealnums(n,-1);stackintstk;for(int i 0 ;i2*n;i){int num nums[i % n];while(!stk.empty() nums[stk.top()] num){int index stk.top();stk.pop();realnums[index] num;}if(in){stk.push(i);}}return realnums;} };
http://www.tj-hxxt.cn/news/227728.html

相关文章:

  • 网站建设优化兼职在家西安做网站哪里好
  • 安徽教育云平台网站建设电商平台开发需要哪些技术人员
  • 南通电子商务网站建设wordpress站内搜索
  • 火币网站怎么做空苏州 网站 建设 公司
  • 郑州百度seo网站优化六安网页设计
  • 小学生做网站软件php网站开发实例教程源码
  • 电子商务网站建设与运维论文网站开发需要的资源
  • 手机微信网站怎么做怎么选择网站开发
  • 怎样把自己做的网站发到网上沪深300指数
  • 网站软件有哪些wordpress 设置头像
  • 周到的网站建设推广最强大的wordpress
  • 多种东莞微信网站建设php制作招聘网站
  • 中低端网站建设客户网wordpress评论邮箱通知
  • 网站维护是什么职业wordpress简单用户中心
  • 在线视频网站如何制作常用的设计网站有哪些
  • 从江网站建设河北省网络科技网站
  • 胶州做网站产品外观设计的重要性
  • 文创设计网站创意设计报告
  • 杭州做兼职网站建设宝安做棋牌网站建设哪家好
  • 做外贸网站要注意什么天使投资平台官网
  • 信息化建设包括网站建设有什么展厅设计做的好的网站
  • 路由器做php网站无法访问wordpress官网
  • 网站内容如何自动关联新浪微博合肥 做网站的
  • 网站模板登录模块seo怎么发布外链
  • 团购产品 网站建设结合公众号小店做网站
  • 网站开发备案费用五易网络
  • 郴州网站建设专业现状报告h5网站是什么意思
  • 网站模块分类seo专员工作内容
  • 新网站一天做多少外链成都网络营销推广公司哪家好
  • ps网站子页怎么做威海城乡建设局网站首页