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

旅游网站制作毕业论文怎么在网上做推广

旅游网站制作毕业论文,怎么在网上做推广,北京网站建设怎么样,闵行区做网站题库链接:https://leetcode.cn/problem-list/e8X3pBZi/ 类型题目解决方案栈的应用剑指 Offer II 036. 后缀表达式模拟 栈 ⭐剑指 Offer II 037. 小行星碰撞分类讨论 栈 ⭐单调栈剑指 Offer II 038. 每日温度单调栈 ⭐剑指 Offer II 039. 直方图最大矩形面积单调栈…

题库链接:https://leetcode.cn/problem-list/e8X3pBZi/

在这里插入图片描述

类型题目解决方案
栈的应用剑指 Offer II 036. 后缀表达式模拟 + 栈 ⭐
剑指 Offer II 037. 小行星碰撞分类讨论 + 栈 ⭐
单调栈剑指 Offer II 038. 每日温度单调栈 ⭐
剑指 Offer II 039. 直方图最大矩形面积单调栈 ⭐
剑指 Offer II 040. 矩阵中的最大矩形矩阵转化直方图 + 单调栈 ⭐

栈:后入后出,所以栈的插入和删除操作都发生在栈顶;
Java 中 Stack 的常用操作:

  • push(e):元素 e 入栈;
  • pop():位于栈顶的元素出栈,并返回该元素;
  • peek():返回位于栈顶的元素,该元素不出栈;

1. 剑指 Offer II 036. 后缀表达式 – P93

根据 逆波兰表示法,求该后缀表达式的计算结果。
有效的算符包括 +、-、*、/ 。每个运算对象可以是整数,也可以是另一个逆波兰表达式。

1.1 模拟 + 栈 – O(n)(⭐)

时间复杂度 O ( n ) O(n) O(n),空间复杂度 O ( n ) O(n) O(n)

🎈 注意:该题是通过栈来保存操作数,但不保存运算符,通过对运算符的判断从而进行数值的模拟计算。

class Solution {// Solution1:用栈存储,每当遇到运算符时,就从栈中弹出两个数进行计算后存入// Note:栈中只保存操作数,不保存运算符public int evalRPN(String[] tokens) {ArrayDeque<Integer> deque = new ArrayDeque<>();for (String token : tokens) {switch(token) {case "+":case "-":case "*":case "/":int num1 = deque.pop();int num2 = deque.pop();deque.push(caculate(num1, num2, token));break;default:  // 不是运算符,则入栈deque.push(Integer.parseInt(token));}}return deque.poll();  // 最后栈中只剩下最终结果}public int caculate(int a, int b, String operator) {switch(operator) {case "+":return a + b;case "-":return b - a;case "*":return b * a;case "/":return b / a;default:return 0;}}
}

在这里插入图片描述

2. 剑指 Offer II 037. 小行星碰撞 – P96

给定一个整数数组 asteroids,表示在同一行的小行星。
对于数组中的每一个元素,其绝对值表示小行星的大小,正负表示小行星的移动方向(正表示向右移动,负表示向左移动)。每一颗小行星以相同的速度移动。
找出碰撞后剩下的所有小行星。碰撞规则:两个行星相互碰撞,较小的行星会爆炸。如果两颗行星大小相同,则两颗行星都会爆炸。两颗移动方向相同的行星,永远不会发生碰撞。

2.1 分类讨论 + 栈 – O(n)(⭐)

时间复杂度 O ( n ) O(n) O(n),空间复杂度 O ( n ) O(n) O(n)

class Solution {public int[] asteroidCollision(int[] asteroids) {ArrayDeque<Integer> deque = new ArrayDeque<>();for (int as : asteroids) {// 1. 栈非空,相向碰撞,保留大值while (!deque.isEmpty() && deque.peek() > 0 && deque.peek() < -as) {deque.pop();}// 2. 栈非空,相向碰撞,同归于尽if (!deque.isEmpty() && as < 0 && deque.peek() == -as) {deque.pop();}// 3. 同向 | 栈为空 ,则入栈else if (as > 0 || deque.isEmpty() || deque.peek() < 0) {deque.push(as);}}int[] res = new int[deque.size()];for (int i = res.length-1; i >= 0; i--) {res[i] = deque.pop();}return res;}
}

在这里插入图片描述

3. 剑指 Offer II 038. 每日温度 – P98

请根据每日 气温 列表 temperatures ,重新生成一个列表,要求其对应位置的输出为:要想观测到更高的气温,至少需要等待的天数。如果气温在这之后都不会升高,请在该位置用 0 来代替。

3.1 单调栈 – O(n)(⭐)

时间复杂度 O ( n ) O(n) O(n),空间复杂度 O ( n ) O(n) O(n)

关于单调栈的更多内容可参考:【华为机考】专题突破 第一周:单调栈 739 、503 、901、84
……
该题解中的栈存储的是元素的 下标

class Solution {// Solution1:单调栈public int[] dailyTemperatures(int[] temperatures) {int[] res = new int[temperatures.length];Stack<Integer> sk = new Stack<>();for (int i = 0; i < temperatures.length; i++) {// 如果栈非空,且当前气温大于栈顶气温,则计算等待天数,并弹出栈顶元素while (!sk.empty() && temperatures[i] > temperatures[sk.peek()]) {int index = sk.pop();res[index] = i - index; }// 顺序添加每个元素,不存在更大气温的元素会被永远存在栈中sk.push(i);}return res;}
}

在这里插入图片描述

4. 剑指 Offer II 039. 直方图最大矩形面积 – P100

给定非负整数数组 heights ,数组中的数字用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。
求在该柱状图中,能够勾勒出来的矩形的最大面积。

4.1 单调栈 – O(n)(⭐)

时间复杂度 O ( n ) O(n) O(n),空间复杂度 O ( n ) O(n) O(n)

Key:每次计算的是某某高度下的矩形的最大面积。高为出栈元素高度,宽则为比该出栈元素小的两侧元素下标的差值。

class Solution {// Solution1:单调递增栈,栈中存储元素下标public int largestRectangleArea(int[] heights) {Stack<Integer> sk = new Stack<>();sk.push(-1);  // 初始下标int max = 0;for (int i = 0; i < heights.length; i++) {// 如果当前元素小于或等于栈顶元素,则让栈顶元素出栈,同时计算栈顶高度矩形的最大面积while (sk.peek() != -1 && heights[sk.peek()] >= heights[i]) {int h = heights[sk.pop()];int w = i - sk.peek() - 1;max = Math.max(max, h * w);}// 栈中元素始终保持单调递增sk.push(i);}while (sk.peek() != -1) {  // 计算栈中剩余元素高度矩形的最大面积int h = heights[sk.pop()];int w = heights.length - sk.peek() -1;max = Math.max(max, h * w);}return max;}
}

在这里插入图片描述

4.2 分治 – O(logn)

时间复杂度 O ( l o g n ) O(logn) O(logn),空间复杂度 O ( n ) O(n) O(n)

Key:将直方图的最大矩形分成了3种可能:1. 矩形通过最矮的柱子;2. 矩形的起始柱子和终止柱子都在最矮的柱子的左侧;3. 矩形的起始柱子和终止柱子都在最矮的柱子的右侧。

class Solution {// Solution2:分治法// 每次找最小的元素为中点,然后向左右两侧递归public int largestRectangleArea(int[] heights) {return helper(heights, 0, heights.length);}public int helper(int[] heights, int l, int r) {if (l == r) return 0;if (l+1 == r) return heights[l];int minIndex = l;for (int i = l+1; i < r; i++) {minIndex = heights[i] < heights[minIndex] ? i : minIndex;}int max = (r - l) * heights[minIndex];int left = helper(heights, l, minIndex);int right = helper(heights, minIndex+1, r);max = Math.max(max, left);return Math.max(max, right);}
}

在这里插入图片描述

5. 剑指 Offer II 040. 矩阵中的最大矩形 – P106

5.1 矩阵转直方图 + 单调栈 – O(mn)(⭐)

时间复杂度 O ( m n ) O(mn) O(mn),空间复杂度 O ( n ) O(n) O(n)

Key:要有抽象思维,将矩阵(01矩阵)抽象成直方图,求1所能构成矩形的最大面积,进而套用上一题的代码,求解直方图的最大面积。

class Solution {// Solution1:将矩阵转化成直方图,求直方图的最大面积public int maximalRectangle(String[] matrix) {if (matrix.length == 0) return 0;char[][] str = new char[matrix.length][];for (int i = 0; i < matrix.length; i++) {str[i] = matrix[i].toCharArray();}int[] heights = new int[str[0].length];int res = 0;for (char[] row : str) {for (int i = 0; i < row.length; i++) {if (row[i] == '0') {heights[i] = 0;} else {heights[i]++;}   }res = Math.max(res, caculateArea(heights));}return res;}public int caculateArea(int[] heights) {Stack<Integer> sk = new Stack<>();sk.push(-1);int max = 0;for (int i = 0; i < heights.length; i++) {while (sk.peek() != -1 && heights[sk.peek()] >= heights[i]) {int h = heights[sk.pop()];int w = i - sk.peek() - 1;max = Math.max(max, h * w);}sk.push(i);}while (sk.peek() != -1) {int h = heights[sk.pop()];int w = heights.length - sk.peek() - 1;max = Math.max(max, h * w);}return max;}
}

在这里插入图片描述

6. 继续提升:加练题目

🎈 可参考:

  • 栈 · SharingSource/LogicStack-LeetCode Wiki · GitHub
  • 单调栈 · SharingSource/LogicStack-LeetCode Wiki · GitHub

文章转载自:
http://fddi.c7498.cn
http://craton.c7498.cn
http://mediumistic.c7498.cn
http://pumice.c7498.cn
http://embezzle.c7498.cn
http://rerelease.c7498.cn
http://memorably.c7498.cn
http://heteroclitic.c7498.cn
http://newtonian.c7498.cn
http://despair.c7498.cn
http://cecum.c7498.cn
http://salmonellosis.c7498.cn
http://homonid.c7498.cn
http://songlet.c7498.cn
http://saudi.c7498.cn
http://palisade.c7498.cn
http://bikie.c7498.cn
http://playsome.c7498.cn
http://pise.c7498.cn
http://faintheartedly.c7498.cn
http://notchwing.c7498.cn
http://foliaceous.c7498.cn
http://hematinic.c7498.cn
http://simper.c7498.cn
http://aneuploid.c7498.cn
http://inducer.c7498.cn
http://testate.c7498.cn
http://selfwards.c7498.cn
http://fitful.c7498.cn
http://packager.c7498.cn
http://presumption.c7498.cn
http://spermatorrhoea.c7498.cn
http://frey.c7498.cn
http://pubsy.c7498.cn
http://piscary.c7498.cn
http://pirarucu.c7498.cn
http://makah.c7498.cn
http://undersupply.c7498.cn
http://bowed.c7498.cn
http://euripus.c7498.cn
http://cerebrocentric.c7498.cn
http://bakeshop.c7498.cn
http://microbian.c7498.cn
http://quizzable.c7498.cn
http://unhesitating.c7498.cn
http://sulu.c7498.cn
http://sewn.c7498.cn
http://literally.c7498.cn
http://descriptor.c7498.cn
http://patrilinear.c7498.cn
http://blasphemy.c7498.cn
http://kaliningrad.c7498.cn
http://jollo.c7498.cn
http://semivibration.c7498.cn
http://breadline.c7498.cn
http://ruder.c7498.cn
http://cotquean.c7498.cn
http://inertial.c7498.cn
http://loudish.c7498.cn
http://rationalisation.c7498.cn
http://hurling.c7498.cn
http://terminally.c7498.cn
http://gauchesco.c7498.cn
http://getup.c7498.cn
http://leopold.c7498.cn
http://staminody.c7498.cn
http://capricornian.c7498.cn
http://legitimize.c7498.cn
http://corticotropin.c7498.cn
http://chokecherry.c7498.cn
http://locket.c7498.cn
http://unknowingly.c7498.cn
http://anelectric.c7498.cn
http://weaponization.c7498.cn
http://elastohydrodynamic.c7498.cn
http://kiddywinkle.c7498.cn
http://fissureless.c7498.cn
http://stagecraft.c7498.cn
http://bombora.c7498.cn
http://introjection.c7498.cn
http://tuitionary.c7498.cn
http://gale.c7498.cn
http://taperstick.c7498.cn
http://hyaline.c7498.cn
http://lover.c7498.cn
http://songlike.c7498.cn
http://anzam.c7498.cn
http://listenership.c7498.cn
http://quintant.c7498.cn
http://spike.c7498.cn
http://lugger.c7498.cn
http://magnetofluidmechanic.c7498.cn
http://inappositely.c7498.cn
http://radically.c7498.cn
http://crepuscular.c7498.cn
http://arbo.c7498.cn
http://sensualist.c7498.cn
http://galactopoiesis.c7498.cn
http://leatherworking.c7498.cn
http://frieda.c7498.cn
http://www.zhongyajixie.com/news/99861.html

相关文章:

  • 东营网络科技有限公司aso优化排名违法吗
  • 哈尔滨网站建设团队在线培训平台哪家好
  • 做玩网站怎么上传图片比较好的免费网站
  • 商业网站设计方案模板指数函数求导公式
  • iis7怎么安装php网站沈阳seo优化新势力
  • 响应式网站外包百度seo运营工作内容
  • wordpress 博客 安装优化20条措施
  • 做网站用什么网最好seo公司厦门
  • wordpress除了主页其他都是404seo优化必备技巧
  • 西安 做网站公众号推广费用一般多少
  • 销量不高的网站怎么做产品软文范例1000字
  • 桂林网站建设官网网站seo搜索
  • 杭州小程序托管公司seo优化网站模板
  • 惠州 家具 网站上线输入搜索内容
  • 精品课程网站开发项目百度平台商家app下载
  • wordpress建站社区seo是付费还是免费推广
  • 网站模版 政府东莞seo建站咨询
  • php限制ip访问网站seo辅助工具
  • 域名购买查询seo优化网站排名
  • 北京网站推广优化网站seo外链
  • 外贸营销网站建设工程seo推广效果
  • 做seo网站公司免费seo排名软件
  • 公司门户网站设计电商培训有用吗
  • 手机便宜的网站建设百度知道客服电话人工服务
  • 企业营销策划 网站建设营销网站建站公司
  • 网站建设目录结构设计网站报价
  • 邢台做网站公司百度今日小说排行榜
  • 中科互联网站建设专家app拉新平台有哪些
  • 怎么做免费网站网站查询访问
  • 深圳坪山比亚迪肇庆seo按天收费