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

广西优化网站播州区住房和城乡建设局网站

广西优化网站,播州区住房和城乡建设局网站,wordpress 块,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.yayakq.cn/news/141918/

相关文章:

  • 网站建设工作html5网站基础
  • 购物网站功能模块图wordpress大学主题3.5
  • 大兴建设网站公司水果网站建设方案书
  • 建立营销型网站天津建设网站
  • 做国内电影网站赚钱不wordpress postmeta
  • 重庆建设车业官方网站互联网营销优势
  • 网站建设推广技术app商城开发定制
  • 淘宝网网站开发哈尔滨网站建设可信赖
  • 电 器建设网站目的及功能定位淘宝属于什么网站怎么做
  • 珠海网站建设优化推广如何做销售直播网站
  • 网站制作的常见问题isux主题wordpress
  • 哈尔滨网站制作哪儿好薇济宁城乡住房建设网站
  • 摄影师都在哪些网站发布作品wordpress文章评论插件
  • 济南优化seo网站建设局域网网站域名怎么做
  • 兖州城乡建设局网站重庆网站建设优化排名
  • 男女视频做爰的网站济南怎么做网站
  • 网站建设中模版谷歌google官方下载
  • 专业网站优化公司排名商业软文代写
  • 西乡县门户网站网站推广免费
  • 有知道做网站的吗有做游戏广告的网站
  • 网视易网站建设现在室内设计师好做吗
  • 浙江建设工程造价信息网站dede 网站标题
  • 河北省住房和城乡建设部网站广告策划活动公司
  • 怎么个人做网站网站建设领域的基本五大策略要学会
  • 做网站那些好拼多多跨境电商平台
  • 网站安全建设申请网站文章更新注意什么
  • 更合网站设计莞城做网站
  • 永川网站建设熊掌号jquery网站模板
  • 内网做网站需要空间吗做社交的招聘网站
  • 企业网站推广方案免备案免费空间