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

用手机怎么做网站外贸高端网站设计公司

用手机怎么做网站,外贸高端网站设计公司,网站是如何做的好,湖北建设厅下一个更大元素 II 给定一个循环数组 nums ( nums[nums.length - 1] 的下一个元素是 nums[0] ),返回 nums 中每个元素的 下一个更大元素 。 数字 x 的 下一个更大的元素 是按数组遍历顺序,这个数字之后的第一个比它更大的数&…

下一个更大元素 II

给定一个循环数组 nums ( nums[nums.length - 1] 的下一个元素是 nums[0] ),返回 nums 中每个元素的 下一个更大元素 。

数字 x 的 下一个更大的元素 是按数组遍历顺序,这个数字之后的第一个比它更大的数,这意味着你应该循环地搜索它的下一个更大的数。如果不存在,则输出 -1 。

示例 1:

输入: nums = [1,2,1]
输出: [2,-1,2]
解释: 第一个 1 的下一个更大的数是 2;
数字 2 找不到下一个更大的数; 
第二个 1 的下一个最大的数需要循环搜索,结果也是 2。

示例 2:

输入: nums = [1,2,3,4,3]
输出: [2,3,4,-1,4]

思路:

        /*

            单调栈

            定义一个result用来存下标,和一个栈st用来存元素下标,首先栈先存入数组的第一个元素,从数组的第二个元素element开始比较,

            if(element<=nums[st.top()]) st.push(i);

            else{

                while(!st.empty()&&nums[i]>nums[st.top()]){

                result[st.top()] = i;

                st.pop();

            }

            st.push(i);

            }

            对于循环搜索

            for(int i = 0;i<nums.size()*2;i++)类似遍历两遍

            i= i%nums.size();求模不至于访问数组越界

        */

代码:
class Solution {
public:vector<int> nextGreaterElements(vector<int>& nums) {/*单调栈定义一个result用来存下标,和一个栈st用来存元素下标,首先栈先存入数组的第一个元素,从数组的第二个元素element开始比较,if(element<=nums[st.top()]) st.push(i);else{while(!st.empty()&&nums[i]>nums[st.top()]){result[st.top()] = i;st.pop();}st.push(i);}对于循环搜索for(int i = 0;i<nums.size()*2;i++)类似遍历两遍i= i%nums.size();求模不至于访问数组越界*/vector<int>result(nums.size(),-1);stack<int>st;st.push(0);for(int i = 1;i<nums.size()*2;i++){if(nums[i%nums.size()]<=nums[st.top()]){st.push(i%nums.size());}else{while(!st.empty()&&nums[i%nums.size()]>nums[st.top()]){result[st.top()] = nums[i%nums.size()];st.pop();}}st.push(i%nums.size());}return result;}
};

42. 接雨水

给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。

示例 1:

输入:height = [0,1,0,2,1,0,1,3,2,1,2,1]
输出:6
解释:上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。 

示例 2:

输入:height = [4,2,0,3,2,5]
输出:9

思路:

        /*

            采用单调栈

            定义一个栈 用来存下标,首先先把数组的第一个元素下标存入栈,然后从数组的第二个元素开始遍历

            遍历到的元素如果小于栈顶元素,就把该元素的下标存入栈

            遍历到的元素如果大于栈顶元素,就把栈顶元素下标取出记录比该元素大的第一个元素的下标,这个过程是持续性的过程。

            以上就是单调栈

            本题可以找到栈顶元素的比其右边大的元素,即遍历到的元素,左边遍历到的大的元素,即栈顶的下一个元素

           

        */

代码:
class Solution {
public:int trap(vector<int>& height) {/*采用单调栈 定义一个栈 用来存下标,首先先把数组的第一个元素下标存入栈,然后从数组的第二个元素开始遍历遍历到的元素如果小于栈顶元素,就把该元素的下标存入栈遍历到的元素如果大于栈顶元素,就把栈顶元素下标取出记录比该元素大的第一个元素的下标,这个过程是持续性的过程。以上就是单调栈本题可以找到栈顶元素的比其右边大的元素,即遍历到的元素,左边遍历到的大的元素,即栈顶的下一个元素*/stack<int>st;st.push(0);int sum = 0;for(int i = 1;i<height.size();i++){if(height[i]<height[st.top()]){st.push(i);}else if(height[i]==height[st.top()]){st.push(i);}else{while(!st.empty()&&height[i]>height[st.top()]){int mid = st.top();st.pop();if(!st.empty()){ int heigh = min(height[i],height[st.top()])-height[mid];int width = i-st.top()-1;sum += heigh*width;}}}st.push(i);}return sum;}
};

还有很多瑕疵,还需继续坚持!

http://www.hkea.cn/news/800830/

相关文章:

  • 经纪人做网站技巧搜索引擎入口yandex
  • 教育网站制作哪家服务好全球外贸采购网
  • 响应式网络网站源码百度关键词查询网站
  • 南京网站制作设计公司网络运营团队
  • 阿里巴巴上怎样做自己的网站seo网站优化网站编辑招聘
  • 网站做付费推广都需要问什么网络热词2022
  • 给男票做网站表白的软件产品市场推广计划书
  • 西安网站制作定制怎么制作自己的个人网站
  • wordpress 如何移动端盐城seo优化
  • asp.net 制作网站开发百度竞价排名软件
  • 百度爱采购推广平台天津网络推广seo
  • 福州市闽侯县建设局网站推广引流吸引人的文案
  • wordpress目录 读写权限泰安短视频seo
  • 东莞建设网站流程澎湃新闻
  • 萧县住房和城乡建设局网站seo排名推广工具
  • 企业网站php模板下载百度百科官网首页
  • 做愛視頻网站在线网页制作网站
  • 织梦pc怎么做手机网站搜索引擎优化的基础是什么
  • 课程建设网站设计源码爱站网反链查询
  • 安徽省建设业协会网站个人网页制作教程
  • 好的摄影网站推荐福州seo顾问
  • html做的好看的网站如何宣传推广产品
  • 微信手机网站制作怎么引流客源最好的方法
  • 宿州建设网站公司前端seo搜索引擎优化
  • 做王境泽表情的网站百度seo关键词优化排名
  • 怎么选择无锡网站建设虚拟主机搭建网站
  • 做原油期货关注什么网站搜索引擎优化是做什么
  • 微信小程序怎么制作游戏安卓优化清理大师
  • 胶南做网站初学者做电商怎么入手
  • 网站为什么要维护佛山网络营销推广