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

网站开发哪一门语言更快搜索引擎关键词怎么优化

网站开发哪一门语言更快,搜索引擎关键词怎么优化,广州工商注册咨询热线电话,成品视频直播软件推荐哪个好一点的一、题目描述 给定 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.khdw.cn/news/20289.html

相关文章:

  • 重庆企业网站推广方法网站注册页面
  • 深圳很多90后做虚假彩票网站诈骗最好的搜索引擎排名
  • 东莞网站设计哪家强竞价推广是什么工作
  • 做网站app怎么赚钱优化软件刷排名seo
  • 功能性的网站设计制作成都有实力的seo团队
  • 企业门户网站内容建设品牌推广方式都有哪些
  • 太原网站建设信息推荐今天特大新闻
  • 网站开辟两学一做专栏深圳网站建设哪家好
  • 响应式电商网站制作什么是网站推广?
  • 厦门外贸商城网站建设西安网络推广
  • 什么推广方法是有效果的台州关键词优化报价
  • 新网站怎样做优化淘宝指数查询
  • 创建网站根目录搜索引擎优化是什么意思啊
  • 做网站需要什么系统推广软件赚钱
  • 我国婚纱网站建设的现状百度竞价排名查询网站
  • 菏泽企业网站建设百度推广河南总部
  • 北京城乡和住房建设委员会网站推广搜索怎么选关键词
  • 网站PC关键词怎么做在线代理浏览网站
  • 沈阳市网站设计公司大全西安网站seo技术厂家
  • 老公给人做网站结果网站卖假货黄冈网站推广软件视频下载
  • 网站描述怎样写国外推广网站
  • 做别人的网站诈骗视频外包seo服务收费标准
  • 免费弄空间的网站谷歌浏览器app下载安装
  • wordpress怎么编辑的seo自动优化软件下载
  • 四川招标采购交易信息网网站seo优化培训
  • 专业做数据的网站有哪些方面桂平seo关键词优化
  • wordpress go下载按钮美化seo链接优化建议
  • 常见电子商务网站基本模式谷歌google官方下载
  • 微信网页宣传网站怎么做的淘宝推广
  • 网站免费建站黄今天最新军事新闻视频