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

静态网站开发考虑什么杭州网站建设技术支持

静态网站开发考虑什么,杭州网站建设技术支持,商城网站上做内容冲突吗,wordpress 嵌入html一、题目描述 给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。 求在该柱状图中,能够勾勒出来的矩形的最大面积。 示例 1: 输入:heights [2,1,5,6,2,3] 输出:10 解释&#xff1a…

一、题目描述

给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。

求在该柱状图中,能够勾勒出来的矩形的最大面积。

示例 1:

输入:heights = [2,1,5,6,2,3]
输出:10
解释:最大的矩形为图中红色区域,面积为 10

示例 2:

输入: heights = [2,4]
输出: 4

提示:

  • 1 <= heights.length <=105
  • 0 <= heights[i] <= 104

二、思路分析

使用栈空间来解决本题,通过空间换时间的方式。

三、代码参考

1、Java

class Solution {public int largestRectangleArea(int[] heights) {// 获取数组长度int len = heights.length;// 数组长度为 0 或者 1 时直接返回if(len == 0){return 0;}if(len == 1){return heights[0];}// 用来返回最大面积,初始值为 0int area = 0;// 创建栈空间做辅助Deque<Integer> stack = new ArrayDeque<>();// 循环遍历数组for(int i = 0; i < len; i++){// while(!stack.isEmpty() && heights[stack.peekLast()] > heights[i]){// 获取栈顶高度,并移除当前栈顶int height = heights[stack.removeLast()];// 做特殊的处理,如果当前栈顶的高度和上一个栈顶的高度相同,则也需要进行弹栈while(!stack.isEmpty() && heights[stack.peekLast()] == height){// 移除栈顶元素stack.removeLast();}// 创建宽度变量,初始值为 0int width = 0;// 如果栈为空,说明,有效柱体能够从 i 的左边一直延伸到第一个开始if(stack.isEmpty()){// 所以此时的宽度为 iwidth = i;}else {width = i - stack.peekLast() - 1;}// 计算面积, 长 * 宽,并获取最大面积area = Math.max(area, height * width);}// 将下标存入栈空间中stack.addLast(i);}// 将当前栈中的所有元素弹出while(!stack.isEmpty()){// 获取栈顶高度,并移除当前栈顶int height = heights[stack.removeLast()];// 做特殊的处理,如果当前栈顶的高度和上一个栈顶的高度相同,则也需要进行弹栈while(!stack.isEmpty() && heights[stack.peekLast()] == height){// 移除栈顶元素stack.removeLast();}// 创建宽度变量,初始值为 0int width = 0;// 如果栈为空,说明,有效柱体能够从 i 的左边一直延伸到第一个开始if(stack.isEmpty()){// 所以此时的宽度为 lenwidth = len;}else {width = len - stack.peekLast() - 1;}// 计算面积, 长 * 宽,并获取最大面积area = Math.max(area, height * width);}// 返回面积结果return area;}
}

2、Python

class Solution:def largestRectangleArea(self, heights: List[int]) -> int:size = len(heights)area = 0stack = []for i in range(size):while len(stack) > 0 and heights[i] < heights[stack[-1]]:height = heights[stack.pop()]while len(stack) > 0 and height == heights[stack[-1]]:stack.pop()if len(stack) > 0:width = i - stack[-1] - 1else:width = iarea = max(area, height * width)stack.append(i)while len(stack) > 0 is not None:height = heights[stack.pop()]while len(stack) > 0 and height == heights[stack[-1]]:stack.pop()if len(stack) > 0:width = size - stack[-1] - 1else:width = sizearea = max(area, height * width)return area

http://www.tj-hxxt.cn/news/876.html

相关文章:

  • 天津外贸网站建设公司著名的营销成功的案例
  • 坊子网站建设zac博客seo
  • 做微信公众号的网站有哪些seo优化知识
  • 江津做电子商务网站怎样打百度人工客服热线
  • 网站友情链接如何做百度云网盘官网
  • 网站建设技术选择网站怎么做出来的
  • 免费网页下载aso优化推广
  • 做百度移动网站优化排2021十大网络舆情案例
  • 国外做袜靴的网站百度小说风云榜
  • 百度多长时间收录网站新网站推广最直接的方法
  • 如何做门户网站全国教育培训机构平台
  • 网站建设的过程seo手机搜索快速排名
  • 网站建设哪里有学怎么建立自己的企业网站
  • 济南哪里做网站网建公司
  • 免费网站软件大全百度推广电话销售话术
  • 网站备案密码使用优化设计答案五年级上册
  • 千万不能 网站百度页面
  • dedecms 做电商网站seo优化专员工作内容
  • 在网站做网管工作都做什么高端企业建站公司
  • 亦庄建设局网站百度浏览器官方下载
  • 临沂网站制作公司成都网站建设公司排名
  • 常州新北区有做淘宝网站策划的吗网络营销的网站建设
  • 维启网站建设引流推广平台
  • 局域网网站怎么做seo如何优化网站步骤
  • 做动态网站时测试服务器不成功网络推广精准营销推广
  • 零基础源码建设网站网站优化技巧
  • 学做网站教学百度网盘比较好的网络优化公司
  • mac做网站设计郑州专业seo推荐
  • 二手车 东莞网站建设可以做产品推广的软件有哪些
  • 普通网站制作贴吧aso优化贴吧