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

注册公司去哪个网站中国建设银行网站运营模式

注册公司去哪个网站,中国建设银行网站运营模式,石家庄网站建设推广公司报价,天津建设信息工程42. 接雨水 暴力法 for循环遍历每一个柱子#xff0c;内层for循环找到左边和右边比它高的柱子 时间复杂度 n^2 优化#xff1a;添加一个预处理 定义一个数组#xff0c;存放该柱子右边比他高的柱子是哪一个 再用一个数组#xff0c;存放该柱子左边比他高的柱子是哪一个 …42. 接雨水 暴力法 for循环遍历每一个柱子内层for循环找到左边和右边比它高的柱子 时间复杂度 n^2 优化添加一个预处理 定义一个数组存放该柱子右边比他高的柱子是哪一个 再用一个数组存放该柱子左边比他高的柱子是哪一个 单调栈 单调栈在每日温度题目中其要找到右边第一个比他大的温度适配到本题就是找到当前柱子左边右边 第一个比它大的温度 遍历一次就能处理完当前遍历的元素比栈口元素大的时候说明栈口柱子右边比它大的那个柱子找到了它左边比它大的柱子怎么找在栈中。 class Solution {public int trap(int[] height){int size height.length;if (size 2) return 0;// in the stack, we push the index of array// using height[] to access the real heightStackInteger stack new StackInteger();stack.push(0);int sum 0;for (int index 1; index size; index){int stackTop stack.peek();if (height[index] height[stackTop]){stack.push(index);}else if (height[index] height[stackTop]){// 因为相等的相邻墙左边一个是不可能存放雨水的所以pop左边的index, push当前的indexstack.pop();stack.push(index);}else{//pop up all lower valueint heightAtIdx height[index];while (!stack.isEmpty() (heightAtIdx height[stackTop])){int mid stack.pop();if (!stack.isEmpty()){int left stack.peek();int h Math.min(height[left], height[index]) - height[mid];int w index - left - 1;int hold h * w;if (hold 0) sum hold; //加不加大于0都一样stackTop stack.peek();}}stack.push(index);}}return sum;} }自己再做了一遍 class Solution {public int trap(int[] height) {if(height.length 2) {return 0;}StackInteger st new Stack(); //存的是下标st.push(0);int sum 0;for(int i1; iheight.length; i) {// i 下标 height[i]值// height[st.peek()] height[st.pop()]if(height[i] height[st.peek()]) {st.push(i);} else if(height[i] height[st.peek()]) {st.pop();st.push(i); //虽然值是一样的但下标不一样} else { //发现凹槽了// int stackTop st.peek();int right i; //凹槽右侧高度while(!st.empty() height[right] height[st.peek()]) {int mid st.pop();//凹点if(!st.empty()) {int left st.peek();int w right-left-1;int h Math.min(height[left], height[right]) - height[mid];int hold h*w;sum hold;}}st.push(i);//体积 w * h }}return sum;} }双指针 与单调栈不同的是双指针求体积求的是 竖向的体积 class Solution {public int trap(int[] height) {int len height.length;if(len 2) return 0;int[]maxLeft new int[len];int[]maxRight new int[len];maxLeft[0] height[0];for(int i1; ilen; i) {maxLeft[i] Math.max(height[i], maxLeft[i-1]);}maxRight[len-1] height[len-1];for(int ilen-2; i0; i--) {// maxLeft[i] Math.max(height[i], maxLeft[i-1]);maxRight[i] Math.max(height[i],maxRight[i1]);}int sum 0;for(int i0; ilen; i) {int h Math.min(maxLeft[i],maxRight[i]) - height[i];if(h0) sumh; // h*1}return sum;} }84.柱状图中最大的矩形 emmm 和接雨水到底哪里一样了 暴力法 双指针 遍历每一根柱子向左向右找比它小的边界算出面积并求最大 优化两个数组一个存放i左边比他矮的一个存放i右边 单调栈 写法不一样了栈中元素 从栈顶到栈底要 从大到小。 遍历一次就能处理完当前遍历的元素比栈口元素小的时候说明栈口柱子右边比它小的那个柱子找到了它左边比它小的柱子怎么找在栈中。 首尾补0 尾补0[2468] 首补0[8642] class Solution {public int largestRectangleArea(int[] heights) {int[]newHeight new int[heights.length2];for(int i1; iheights.length; i) {newHeight[i] heights[i-1];}heights newHeight; //重定向StackInteger st new StackInteger();st.push(0);int res0;for(int i1; iheights.length; i) {if(heights[i]heights[st.peek()]) {st.push(i);} else if(heights[i] heights[st.peek()]) {st.pop();st.push(i);} else {//栈可能为空吗while(heights[i] heights[st.peek()]) {int mid st.peek();st.pop();int left st.peek();int right i;int w right - left - 1;int h heights[mid];res Math.max(res, w * h);}st.push(i);}}return res;} }单调栈最核心的其实是栈顶元素
http://www.w-s-a.com/news/899464/

相关文章:

  • 网站制作设计发展前景网页链接制作生成二维码
  • 廊坊哪里有制作手机网站的企业网站建设费用财务处理
  • 手机网站建设书籍工商咨询服务
  • 麻花星空影视传媒制作公司网站美食网站网站建设定位
  • 网站的切图是谁来做学会网站 建设
  • 交通局网站建设方案答辩ppt模板免费下载 素材
  • 个人摄影网站推介网手机版
  • 有哪些免费的视频网站网站开发和竞价
  • 学校网站如何做广州商城型网站建设
  • 微网站建设哪家便宜易优建站系统
  • 推荐做木工的视频网站毕业设计做的网站抄袭
  • 网站导航页面制作wordpress调用文章阅读量
  • app小程序网站开发品牌购物网站十大排名
  • 用wordpress做购物网站龙岩品牌设计
  • 网站开发是指wordpress系统在线升级
  • 网站建设运营的灵魂是什么意思页面跳转中
  • 家政服务网站源码重庆建网站企业有哪些
  • 怎样分析一个网站做的好坏重庆长寿网站设计公司哪家专业
  • 百度助手app下载苏州seo关键词优化排名
  • 17网站一起做 佛山诸城网站建设多少钱
  • 郑州网站建设培训学校泉州做网站设计公司
  • 西峡做网站深圳建筑工务署官网
  • 单县网站惠州seo计费
  • 万网网站建设 优帮云怎样用记事本做网站
  • 注册域名后网站建设百度指数的功能
  • 怎么做伪静态网站山西网站建设设计
  • 做小型企业网站多少钱衡阳市建设局网站
  • 金华专业网站建设公司网站建设空间和服务器方式
  • 自己做的网站在浏览器上显示不安全吗wordpress revolution slider
  • 西安网站建设推广优化搜索引擎营销