《leetcode-go》直方图中的最大矩形

Go-gohistogram-Go中的数据流近似直方图 gohistogram - Go中的数据流近似直方图 立即下载

给出n个数字,代表直方图的条高,直方图每一条的宽度为1,请计算直方图中最大矩形的面积.

思路1:采用一个栈来存高度,生成一个单调递增的栈,如果高度比栈里的最后一个元素小,就需要对前面进行结算。出栈计算比当前值大的值对应面积,宽就是一个从0开始自增的cnt。当比当前元素高的出栈之后,用当前元素值一样的塞进去,这样就是一个单增的栈,遍历结束之后,出栈计算最大面积即可。

思路2:可以搞一个二维数组,然后计算每一个高度他存在的最大宽度,也就是记录他的最左和最右。最后遍历求最大面积就可以了

package main

/**
  * 
  * @param height int整型一维数组 
  * @return int整型
*/
func largestRectangleArea( height []int ) int {
    // write code here
    stack := []int{-1}
	res := 0
	for _, v := range height {
		cnt := 0
		for stack[len(stack)-1] != -1 && stack[len(stack)-1] > v {
			cnt++
			key := stack[len(stack)-1]
			stack = stack[:len(stack)-1]
			if res < key*cnt {
				res = key * cnt
			}
		}
		for cnt > 0 {
			stack = append(stack, v)
			cnt--
		}
		stack = append(stack, v)
	}
	cnt := 0
	for stack[len(stack)-1] != -1 {
		cnt++
		key := stack[len(stack)-1]
		stack = stack[:len(stack)-1]
		if res < key*cnt {
			res = key * cnt
		}
	}
	return res
}

hdrhistogram-go:Gil Tene的HDR直方图的纯Go实现 hdrhistogram-go 纯Go实现。 支持在可配置整数值范围内以可配置值精度在该范围内记录和分析采样数据值计数的直方图。 值精度表示为值记录中的有效位数,并提供对整个值范围内的值量化行为的控制,以及对任何给定级别的后续值分辨率的控制。 有关文档,请检查 。 入门 正在安装 使用go get检索hdrhistogram-go实现并将其添加到您的GOPATH工作区或项目的Go模块依赖项中。 go get github . com / HdrHistogram / hdrhistogram - go 要更新实现,请使用go get -u检索hdrhistogram的最新版本。 go get github . com / HdrHistogram / hdrhistogram - go 转到模块 如果使用的是Go模块,则go get将默认为直方图的最新标记发行版本。 要获取特定 立即下载

相关推荐

在Go中流式传输近似直方图-Golang开发

gohistogram-Go中的直方图此软件包提供了流式近似直方图,以实现有效的分位数近似。 此程序包中的直方图基于Ben-Haim和Yom-Tov的“流直方图-Go中的直方图”中找到的算法。此程序包提供了流式近似直方图,可进行有效的分位数近似。 此程序包中的直方图基于Ben-Haim和Yom-Tov的“流并行决策树算法(PDF)”中的算法。 直方图箱没有预设的大小。 当值流入直方图中时,将动态添加并合并垃圾箱。 可以在Apache Hive项目中找到另一个实现(请参阅NumericHistogram)。 一个例子:准确的我

leetcode 84. 柱状图中最大的矩形 golang实现

描述 给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。 求在该柱状图中,能够勾勒出来的矩形的最大面积。 示例: 输入: [2,1,5,6,2,3] 输出: 10 思路 实现 func largestRectangleArea(heights []int) int { var max int var stack = make([]int, 0...

tzh_linux的专栏 350

双重机器学习 stata教程 手把手教学

双重机器学习(DDML)的stata教程

weixin_59030591的博客 1万+

leetcode 85. 最大矩形 golang实现

描述 给定一个仅包含 0 和 1 的二维二进制矩阵,找出只包含 1 的最大矩形,并返回其面积。 示例: 输入: [ ["1","0","1","0","0"], ["1","0","1","1","1"], ["1","1","1","1","1"], ["1","0","0","1","0"] ] 输出: 6 思路 利用84题 求最大矩形的思想 对每一行求出柱形图的高度 ...

tzh_linux的专栏 338

本体研究综述(转)

(这篇文章是从http://imarine.blog.163.com/中转载过来的,个人觉得对本体的介绍比较全面!)本体综述本体作为一种能在语义和知识层次上描述领域概念的建模工具,其目标是捕获相关领域的知识,确定该领域内共同认可的词汇,通过概念之间的关系来描述概念的语义,提供对该领域知识的共同理解。语义Web(the Semantic Web)是在本体理论基础之上对现有Web所进行的扩展[

zhenshideni611的专栏 1838

Apple CarPlay Certification Guide December 2022 解析V1.0

Apple CarPlay Certification Guide December 2022更新说明

m0_74450450的博客 703

c语言直方图最大矩形面积,直方图中最大矩形面积(示例代码)

注意:本文并未对原文完整翻译,而是结合原文并根据本人理解写出,因此部分内容为完整翻译,部分内容为个人理解所写。Largest Rectangle in Histogram 直方图中最大矩形面积一个直方图是由许多矩形组成,在给定的直方图中找出最大的矩形面积。为了简化问题,假定所有矩形宽度都为1个单位。例如,下面的直方图中有7个矩形,高度分别是(6,2,5,4,5,2,6)。最大的矩形面积是12(如下...

weixin_39923806的博客 937

SAP特殊库存全解析:供应商寄售、客户寄售、分包与项目库存说明

客户寄售库存(Customer Consignment)是企业将物料存放于客户处,客户实际领用后才确认销售收入。这种模式能缩短交货周期、提高客户满意度,但需严格跟踪寄售库存的数量与状态。

我小时候很黑的博客 822

acwing:131.直方图中最大的矩形

先看题,然后再再讲一下挖掘围绕题的图像性质; ----------------------------------- 直方图是由在公共基线处对齐的一系列矩形组成的多边形。 矩形具有相等的宽度,但可以具有不同的高度。 例如,图例左侧显示了由高度为2,1,4,5,1,3,3 的矩形组成的直方图,矩形的宽度都为1: 通常,直方图用于表示离散分布,例如,文本中字符的频率。 现在,请你计算在公共基线处对齐的直方图中最大矩形的面积。 图例右图显示了所描绘直方图的最大对齐矩形。 输入格式 输入包..

weixin_62953519的博客 656

基于Simulink的无线充电系统LCC补偿网络建模与控制

本文详细介绍了基于Simulink的无线充电系统LCC补偿网络建模与控制方法。首先分析了LCC补偿网络的恒流输出、软开关实现和抗偏移能力等优势,并对比了不同补偿拓扑特性。随后分步骤讲解了Simulink建模流程,包括LCC主电路构建、关键参数设计、双闭环控制系统实现等核心环节。重点阐述了移相控制策略和软开关验证方法,提供了系统效率计算和抗偏移测试的调试技巧。最后展示了仿真结果,在耦合系数变化20%时,闭环系统仍能保持输出电压稳定在±2%波动范围内。文章还探讨了工程扩展方向,并针对常见问题给出了解决方案,为无

xiaoheshang_123的博客 539

免杀思路总结

免杀思路总结 1.免杀技术简介 1.免杀的重要性 2.免杀的难度 3.杀毒软件的排行 国外 国内 1 、Bitdefender 1、360 2 、Norton 360 2、智量安全(没测过,据说很厉害) 3 、Kaspersky 3、火绒安全 4 、Webroot 4、金山独霸 5 、Trend Micro 5

LiBai'S BLOG 1万+

算法-直方图中的最大矩形

直方图中最大矩形((Largest Rectangle in Histogram))问题:直方图是由排列在同一基线上的一系列矩形组成的多边形。为了简单起见,假设这些矩形的宽度相等但高度可能不同。例如,下图1给出了一个直方图,其中各个矩形的高度为3、2、5、6、1、4、4,宽度为标准1单位。当给定了一个保存所有矩形高度的数组时,如何找到其中最大的矩形。对于给定的例子,最大矩形如图2阴影部分所示: 时间

q2nAmor 1万+

手把手教你学Simulink——基于经典滤波器设计的场景:低通滤波器(LPF)的设计与频率响应仿真

滤波器是信号处理领域中非常重要的组件,用于去除不需要的频率成分或者提取有用的频率信息。低通滤波器(Low-Pass Filter, LPF)允许低于某个特定截止频率的信号通过,同时衰减高于该截止频率的信号。在本教程中,我们将学习如何使用设计一个简单的模拟低通滤波器,并对其频率响应进行仿真分析。本文介绍了如何使用设计一个简单的模拟低通滤波器,并通过仿真展示了其应用效果。通过这样的实践,您不仅能够加深对滤波器工作原理的理解,还能掌握利用Simulink进行滤波器设计与仿真的基本技能。

MHD0815的博客 5720

Leetcode 084. Largest Rectangle in Histogram 直方图中最大的矩形

题目位置:https://leetcode.com/problems/largest-rectangle-in-histogram/ 参考链接:https://www.geeksforgeeks.org/largest-rectangle-under-histogram/ 题目:给出一个非负的数组,每个值代表直方图的高度,求直方图中最大的可以构成的矩形。 思路: 从左到右遍历所有的矩形,并保持一...

Chris Blog 162

基于深度学习的工业零件缺陷检测系统

工业零件缺陷检测系统摘要 本文介绍了一个基于深度学习的工业零件缺陷检测系统解决方案。该系统采用Faster R-CNN目标检测算法,结合PyTorch框架和OpenCV图像处理库,实现了对工业零件表面缺陷(如裂纹、划痕、凹坑等)的自动检测与定位。系统包含完整的开发流程:从数据采集与标注、数据增强预处理、模型构建与训练,到最终的评估与部署。相比传统机器视觉方法,该深度学习方案具有更强的特征表示能力和环境适应性,能够有效提升工业质检的准确率和效率。文章详细阐述了系统架构设计、实现细节和优化策略,并提供了完整的代

huanghm88的专栏 286

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

LeetCode 85 最大矩形

参见 LeetCode 打卡 Day 54 —— 柱状图中最大的矩形 中使用栈的解法,还是挺复杂的,构建一个栈,保证栈中存储的各个下标i,满足height[i]递增,当遍历到j,而height[j]

weixin_41804479的博客 230

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

LeetCode:Largest Rectangle in Histogram(直方图中最大矩形面积)

84. Largest Rectangle in Histogram Given n non-negative integers representing the histogram's bar height where the width of each bar is 1, find the area of largest rectangle in the histogram.   Ab...

但行好事,莫问前程 957

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

剑指 Offer II 039. 直方图最大矩形面积(经典题)

力扣单调栈一遍遍历

qq_33523932的博客 415

2020-03-01:给定一个非负数组arr,代表直方图。返回直方图的最大长方形面积。

2020-03-01:给定一个非负数组arr,代表直方图。返回直方图的最大长方形面积。 福哥答案2020-03-01: 单调栈,大压小。有代码。 代码用golang编写,代码如下: package main import ( "container/list" "fmt" ) func main() { arr := []int{3, 2, 4, 2, 5} fmt.Println(largestRectangleArea1(arr)) fmt.Println(la

福大大架构师每日一题 2万+

日常记录 :LeetCode 84题 柱状图中最大的矩形

Java class Solution { public int largestRectangleArea(int[] heights) { int n = heights.length ; int[] right = new int[n]; int[] left = new int[n]; Arrays.fill(right,n); Stack<Integer> stack = new Stack&

weixin_44451148的博客 221

2021-03-20:给定一个二维数组matrix,其中的值不是0就是1,返回全部由1组成的子矩形数量。

2021-03-20:给定一个二维数组matrix,其中的值不是0就是1,返回全部由1组成的子矩形数量。 福大大 答案2021-03-20: 按行遍历二维数组,构造直方图。 单调栈,大压小。有代码。 代码用golang编写,代码如下: package main import "fmt" func main() { matrix := [][]int{ {1, 1, 1, 1, 1, 1}, } ret := numSubmat(matrix) fmt.Pr

福大大架构师每日一题 2万+

[leetcode]85. Maximal Rectangle(Java)

https://leetcode.com/problems/maximal-rectangle/#/description Given a 2D binary matrix filled with 0's and 1's, find the largest rectangle containing only 1's and return its area. For ex

zjkC050818的博客 718

LeetCode-堆栈的使用

20.Valid Parentheses 有效的配对 https://leetcode.com/problems/valid-parentheses/ 题目:如果一个字符串只包含‘(’,‘)、’{‘、’}‘、’[‘和’]‘,则确定输入字符串是否有效。打开括号必须由相同类型的括号关闭,则输入字符串是有效的。开括号必须按照正确的顺序关闭。注意,空字符串也被认为是有效的。 思路:...

djrg92005的博客 551

[leetcode]Largest Rectangle in Histogram

Description给定直方图中每一个柱子的高度,求直方图中面积最大的长方形。每个主席的宽度为1。 例如: 对于该图,给定的序列是[2,1,5,6,2,3] 其中最大的长方形是: 面积为10.Possible Solution简单的贪心 时间复杂度O(N*N)易证明, 最后得到的这个长方形的高度,一定等于某一个柱子的高度,对于[2,1,5,6,2,3]这个解,最后长方形的高度为5

kufaaa的专栏 307

[leetcode]84. Largest Rectangle in Histogram(Java)

https://leetcode.com/problems/largest-rectangle-in-histogram/#/description Given n non-negative integers representing the histogram's bar height where the width of each bar is 1, find the a

zjkC050818的博客 2135

【leetcode算法面试】leetcode题目4-数组

题号 题目 说明 1 Two Sum 两数之和 暴利 / map查找 9 Palindrome Number 验证回文数字 11 Container With Most Water装最多水的容器 26 Remove Duplicates from Sorted Array 有序数组中去除重复项 ...

zhonglinzhang 5808
上一篇: 《leetcode-go》删除有序链表中重复的元素-II
下一篇: 《leetcode-go》划分链表
less_cold
博客等级 码龄10年 40粉丝 364原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值