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

网站上做推广山西制作网站

网站上做推广,山西制作网站,wordpress攻略,网架公司名字推荐大全503. 下一个更大元素 II: 题目链接 给定一个循环数组 nums ( nums[nums.length - 1] 的下一个元素是 nums[0] ),返回 nums 中每个元素的 下一个更大元素 。 数字 x 的 下一个更大的元素 是按数组遍历顺序,这个数字之…

503. 下一个更大元素 II:

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

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

示例 :

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

解答:

class Solution {public int[] nextGreaterElements(int[] nums) {int[] res = new int[nums.length];Arrays.fill(res,-1);Stack<Integer> stack = new Stack<>();int size = nums.length;stack.push(0);for (int i = 1; i <2*nums.length ; i++) {while (!stack.isEmpty()&&nums[i%size]>nums[stack.peek()]){res[stack.peek()] = nums[i%size];stack.pop();}stack.push(i%size);}return res;}
}

算法总结:

本题实际上和下一个更大元素Ⅰ那题思路是一样的,唯一的区别在于我们要考虑循环的问题,我们可以通过2*nums.length来扩大遍历的次数,再通过取模的方式来实现更新。

42. 接雨水:

题目链接
给定 n 个非负整数表示每个宽度为 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 个单位的雨水(蓝色部分表示雨水)。

解答:

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 heightStack<Integer> stack = new Stack<Integer>();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;stackTop = stack.peek();}}stack.push(index);}}return sum;}
}

算法总结:

接雨水这题因为我们要考虑的是凹槽的空间,所以实际上我们只要找到下一个比当前柱子大的柱子即可,所以本题本质上和前面考虑的问题是一样的,同时用int h = Math.min(height[left], height[index]) - height[mid];来计算当前存储的高度,最后加入sum中即为最终结果。

http://www.sczhlp.com/news/55214/

相关文章:

  • 南宁在百度上建网站网站链接提交收录
  • 网站开发合同注意wordpress网页排版
  • 教你做面食的网站中医协会网站建设方案
  • 拓扑复习 | 25 道路连通 知识点+习题
  • Visual Studio 工具栏不显示 DevExpress 组件解决办法
  • 云网站 深圳部门网站建设的工作领导小组
  • 冒险岛钓鱼网站做啥用虚拟主机管理系统源码
  • 腾讯云服务器centos做静态网站wordpress网站导出
  • 东莞企业网站推广技巧wordpress 文章 打赏
  • 上海网站建设 乐云seo长沙网络推广外包
  • 网站html代码Wordpress标签与分类
  • 民宿网站建设问卷调查wordpress分页页面
  • 电影网站cpa怎么做找客户信息的软件
  • 杭州网站建设有限公司做微商有什么好的货源网站
  • 专业的网站建设多少钱广宁网站建设
  • 网页建立网站平台如何设置淘宝友情链接
  • 深圳网站制作建设公司网站优化首页付款
  • 个人音乐网站策划书范文海外推广怎么做
  • 高效的shell
  • 视野修炼-技术周刊第125期 | nano-banana
  • 龙华公司做网站wordpress禁止外链
  • 深圳燃气公司有几家石家庄seo排名外包
  • 网站做流量什么网站可以自己做名片
  • 网站建设需要准备那些内容私人网站免费观看
  • 百度网页首页烟台seo网站推广
  • 手机笑话网站源码设计制作属于哪个行业
  • 怎么查看网站有没有做推广深圳文化墙制作公司
  • 响应式购物网站设计全媒体运营师证报名入口
  • 图书网站建设实训心得wordpress 设置端口
  • 潍坊网站开发asp培训上海哪家公司做网站最好