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

建立网站心得大连领超科技网站建设有限公司

建立网站心得,大连领超科技网站建设有限公司,系统开发费用账务处理,wordpress怎么防爬虫给定 n 个非负整数表示每个宽度为 1 的柱子的高度图#xff0c;计算按此排列的柱子#xff0c;下雨之后能接多少雨水。 方法一#xff1a;双指针法 思路 使用两个指针 left 和 right 分别指向数组的两端#xff0c;同时记录左边的最大高度 leftMax 和右边的最大高度 rig…给定 n 个非负整数表示每个宽度为 1 的柱子的高度图计算按此排列的柱子下雨之后能接多少雨水。 方法一双指针法 思路 使用两个指针 left 和 right 分别指向数组的两端同时记录左边的最大高度 leftMax 和右边的最大高度 rightMax。在每次迭代中比较 left 和 right 指向的高度选择较小的一端进行处理。如果 height[left] height[right]则说明左边的柱子可能会接到雨水此时计算当前位置能接到的雨水量leftMax - height[left]并将 left 指针右移一位否则说明右边的柱子可能会接到雨水计算当前位置能接到的雨水量rightMax - height[right]并将 right 指针左移一位。重复这个过程直到 left 和 right 指针相遇。 代码实现 function trap(height: number[]): number {let left 0;let right height.length - 1;let leftMax 0;let rightMax 0;let result 0;while (left right) {if (height[left] height[right]) {leftMax Math.max(leftMax, height[left]);result leftMax - height[left];left;} else {rightMax Math.max(rightMax, height[right]);result rightMax - height[right];right--;}}return result; }// 示例调用 const height [0, 1, 0, 2, 1, 0, 1, 3, 2, 1, 2, 1]; const rainWater trap(height); console.log(下雨之后能接的雨水:, rainWater);复杂度分析 时间复杂度(O(n))其中 n 是数组 height 的长度。因为只需要遍历一次数组。空间复杂度(O(1))只使用了常数级的额外空间。 方法二单调栈法 思路 使用一个单调栈来存储柱子的索引。遍历数组对于每个柱子如果当前柱子的高度大于栈顶柱子的高度则说明栈顶柱子可以接到雨水计算并累加接水量然后将栈顶元素出栈重复这个过程直到栈为空或者当前柱子的高度不大于栈顶柱子的高度。最后将当前柱子的索引入栈。 代码实现 function trap(height: number[]): number {const stack: number[] [];let result 0;for (let i 0; i height.length; i) {while (stack.length 0 height[i] height[stack[stack.length - 1]]) {const top stack.pop();if (stack.length 0) {break;}const distance i - stack[stack.length - 1] - 1;const minHeight Math.min(height[i], height[stack[stack.length - 1]]) - height[top];result distance * minHeight;}stack.push(i);}return result; }// 示例调用 const height2 [0, 1, 0, 2, 1, 0, 1, 3, 2, 1, 2, 1]; const rainWater2 trap(height2); console.log(下雨之后能接的雨水:, rainWater2);复杂度分析 时间复杂度(O(n))其中 n 是数组 height 的长度。虽然有一个嵌套的 while 循环但每个元素最多入栈和出栈一次所以总的时间复杂度仍然是 (O(n))。空间复杂度(O(n))在最坏情况下栈中可能会存储所有的柱子索引。 综上所述双指针法和单调栈法都能有效地解决接雨水问题双指针法的代码相对简单空间复杂度较低单调栈法的思路相对复杂一些但也能清晰地处理接雨水的逻辑。
http://www.hkea.cn/news/14356075/

相关文章:

  • 公司怎么做网站推广甘肃省网站建设咨询
  • 南昌有没有做企业网站和公司北海哪家公司做网站建设研发
  • 合肥制作网站的公司简介WordPress源码路由
  • 网站 内容建设需要进一步加强创建网页
  • flash如何做网站免费企业黄页
  • 网站备案跟做哪个推广有关系吗大学生网络推广实训报告
  • 沈阳网站建设方案外包广告主资源哪里找
  • 团购汽车最便宜的网站建设wordpress建站空间推荐
  • 企业网站建设源码 微信 手机广州网站建设网页制作开发
  • dedecms 金融类网站模板官方传奇手游下载
  • 陕西省住房建设部官方网站一建家装o2o平台有哪些
  • 芜湖网站建设公司360优化大师官方官网
  • 自己建设网站麻烦吗广州最大的跨境电商公司排名
  • 无锡网站定制诛仙3官方网站做花灯答案
  • 做网站快速赚钱金华网站建设黄页
  • 徐州市建设局网站电话号码列举网站开发常用的工具
  • 网站建设公司简介模板下载北京网站推广服务
  • 成都龙泉建设网站哪些网站做的比较好看的
  • 建设私人网站做外贸网站注册什么邮箱
  • 哈尔滨网站建设企业工艺品商城网站建设
  • 雷州网站建设做网站买好域名怎么办
  • 网址查询站长工具制作个人网站怎么做
  • 营口建网站的公司交通信息华建设网站
  • 网站程序如何上传招标投标公共服务平台
  • 做任务佣金网站源码海外网站优化
  • 中国铁路建设监理协会官方网站昆明网站建设公司排行
  • 免费网站建设哪个好 - 百度宁波网站建设制作电话号码
  • 合肥网站网页设计长春盛网网站建设
  • 深圳做网站哪家专业iis部署网站无法访问
  • 旅游网站建设规划wordpress主题图片拉伸