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

zen cart 创建的网站网站建立明细预计表

zen cart 创建的网站,网站建立明细预计表,杭州 电子商务网站建设,网络营销策划案的形式今日题目#xff1a; Problem 1: 栈的应用 155. 最小栈 | LeetCode20. 有效的括号 | LeetCode150. 逆波兰表达式求值 | LeetCode Problem 2: 单调栈 496. 下一个更大元素 I739. 每日温度503. 下一个更大元素 II 目录 Problem 1#xff1a;栈 - “先进后出”的应用LC 155. 最… 今日题目 Problem 1: 栈的应用 155. 最小栈 | LeetCode20. 有效的括号 | LeetCode150. 逆波兰表达式求值 | LeetCode Problem 2: 单调栈 496. 下一个更大元素 I739. 每日温度503. 下一个更大元素 II 目录 Problem 1栈 - “先进后出”的应用LC 155. 最小栈 【easy】LC 20. 有效的括号 【easy】LC 150. 逆波兰表达式求值 【easy】 Problem 2单调栈 【必会】✴️ 单调栈解决的基本问题找下一个更大元素 【classic】LC 496. 下一个更大元素 ILC 739. 每日温度LC 503. 下一个更大元素 II 【稍有难度】单调栈问题总结 今天主要学习了栈的一些应用和单调栈。 栈的基本应用已经学习过很多次了像括号匹配等问题比较熟悉了所以难度不大。单调栈比较重要它解决了“寻找每个元素的下一个更大元素”这个基本问题。我们要学会解决这个基本问题的代码思路并将其通过转化来解决具体问题。 所以单调栈是今天的重点要学会其解决“寻找下一个更大元素”这个基本问题的思路再学习如何将其用于解决具体问题。 Problem 1栈 - “先进后出”的应用 LC 155. 最小栈 【easy】 155. 最小栈 | LeetCode 这个题目做过多次了难度不大。 LC 20. 有效的括号 【easy】 20. 有效的括号 | LeetCode 括号匹配是使用栈解决的经典问题。通过这个题可以学会如何灵活运用 stack 来解决这个问题。 LC 150. 逆波兰表达式求值 【easy】 150. 逆波兰表达式求值 | LeetCode 也是一个栈的经典应用难度不大也可能是写过好几次了。 Problem 2单调栈 【必会】 单调栈用于解决找下一个更大元素的问题。这是 LeetCode 中一类经典问题。学会的话就不难没学的话一时也不太好想到思路。 首先需要学会使用单调栈的基本模板然后再学习如何利用它解决具体的问题。 ✴️ 单调栈解决的基本问题找下一个更大元素 【classic】 参考 单调栈结构解决三道算法题 | labuladong 首先明确单调栈所能解决的基本问题给一个数组 A找出其中每个元素的右边的下一个更大元素。比如 A [5, 1, 7]那么结果就是 answer [7, 7, -1]因为 5 和 1 的下一个更大元素都是 7而 7 没有下一个更大元素于是填充 -1 作为特殊值。当然answer 中的值也可以是 A 的下标索引这样就是 answer [2, 2, -1]因为 A[0] 和 A[1] 的下一个更大元素的索引都是 2所以 answer[0] 和 answer[1] 都是 2。 解决的思想是假设每个元素的值就是这个元素的身高让每个元素向后看比自己矮的都身高不够而第一个露出头来比自己高的那个元素就是答案比如下图 图片来自 labuladong 那寻找 answer 的方法从代码上实现思路就是声明一个 stack从后向前遍历 nums每次元素入栈前把栈顶上挤压掉身高小于等于自己的元素然后记录下栈顶也就是 nums[i] 身后更大的元素接着入栈继续下一轮循环直到遍历 nums 结束。代码如下 int[] findNextLarger(int[] nums) {int[] nextLarger new int[nums.length]; // 存放 answerListInteger stack new ArrayList(); // 单调栈// 从后向前遍历 numsfor (int i nums.length - 1; i 0; i--) {// 挤压掉身高小于等于自己的元素while (!stack.isEmpty() stack.getLast() nums[i]) {stack.removeLast();}// 记录栈顶元素作为 nums[i] 身后的更大元素nextLarger[i] stack.isEmpty()? -1: stack.getLast();// 入栈nextLarger.addLast(nums[i]);} return nextLarger; }这个问题中每个元素都被 push 一次最多被 pop 一次所以复杂度是 O ( n ) O(n) O(n)。 有了解决这个基本问题的代码模板我们就可以用这个单调栈的思路来解决一些具体的问题了。 LC 496. 下一个更大元素 I 496. 下一个更大元素 I | LeetCode 学会了上面的基本代码模板解决这个问题就会容易很多了。 这个题目的特殊之处在于我们需要找 nums2 的子集 nums1 在 nums2 中的下一个更大元素所以我们对 nums2 使用之前的方法来得到 nextLarger 数组然后需要再将其转换为 map记录着 元素 - 下一个更大元素 的映射然后 nums1 就可以使用这个 map 进行检索从而得到答案。 代码如下图 可以看出来解决这个问题的关键还是使用单调栈。 LC 739. 每日温度 739. 每日温度 | LeetCode 这也是对基本问题的一个变形我们再 nextLarger 中需要存的不是下一个更大的元素而是下一个更大元素的索引下标这样才能计算出索引下标的差值。学会基本问题之后难度也不大。 LC 503. 下一个更大元素 II 【稍有难度】 503. 下一个更大元素 II | LeetCode 这也是一个基本问题的变形基本问题中nums 是一个普通数组而这个题将 nums 定义为一种环形数组。 面对这种需求常用套路就是将数组长度翻倍 实现这种“翻倍”的效果的方式可以构造新数组、可以利用循环数组的技巧取模、可以两次循环等等都可以。 单调栈问题总结 我们学会了单调栈解决“下一个更大元素”这个基本问题的解题方法但在实际应用中题目往往会更加复杂一些这时我们需要把具体问题转化为单调栈相关问题来解决。
http://www.hkea.cn/news/14387092/

相关文章:

  • 中职计算机网站建设教学计划网站空间费价格
  • 100个万能网站html购物网站代码
  • 番禺建设网站公司排名wordpress安装windows
  • 昆山网站开发营销技巧心得体会
  • iis配置网站无法访问网络系统管理员在哪里
  • 中山网站的建设wordpress文章图片点击放大浏览
  • 170个可带链接锚文本外链的网站论坛临海app开发
  • 龙岩网站建设运营电商平台有哪些软件
  • 广西建设厅网站是什么怎么建立本地网站
  • 济南集团网站建设泰安人才网
  • 苏州企业网站建设服务中心玉林市网站建设
  • 网站建设就找奇思网络网站建设做什么会计分录
  • 建设一个功能简单的网站长春建站企业
  • 佛山家居企业网站建设网站建设公司招网站设计
  • 新类型 网站河北注册公司流程和费用
  • 网站字体加载不出来怎么办网页制作软件属于什么软件类别
  • 后台的企业网站模板wordpress页面加载
  • 网络求职做阿姨哪个网站好前端如何优化seo
  • 10m带宽做下载网站html好看的网站
  • 推广网站的论坛如何自己做官网首页
  • 网站建设解决方做公益做的好的的网站
  • 公司网站设计制作山东网站制作团队
  • 企业如何建站做非洲出口的网站
  • 路南网站建设环保网站建设费用
  • 关注公众号推广2元一个智谋网站优化公司
  • 微信端网站设计规范新手从零基础建站初级网站建设
  • 一个网站绑定多个域名2022年国内互联网公司排名
  • 做五金的有哪些外贸网站宿迁网站建设制作
  • 网站设计的主题企业网站报价模板下载
  • 自己网站怎么推广app首页界面设计