日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

【Python CheckiO 题解】Largest Rectangle in a Histogram

發布時間:2023/12/10 python 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Python CheckiO 题解】Largest Rectangle in a Histogram 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

CheckiO 是面向初學者和高級程序員的編碼游戲,使用 Python 和 JavaScript 解決棘手的挑戰和有趣的任務,從而提高你的編碼技能,本博客主要記錄自己用 Python 在闖關時的做題思路和實現代碼,同時也學習學習其他大神寫的代碼。

CheckiO 官網:https://checkio.org/

我的 CheckiO 主頁:https://py.checkio.org/user/TRHX/

CheckiO 題解系列專欄:https://itrhx.blog.csdn.net/category_9536424.html

CheckiO 所有題解源代碼:https://github.com/TRHX/Python-CheckiO-Exercise


題目描述

【Largest Rectangle in a Histogram】:求直方圖最大矩陣面積,給定一個列表,列表中的元素表示一個直方圖中所有矩形的高度,計算在直方圖內構建的最大矩形的面積。

【鏈接】:https://py.checkio.org/mission/largest-histogram/

【輸入】:直方圖中所有矩形的高度列表

【輸出】:最大矩形的面積

【前提】:0 < len(data) < 1000

【范例】

largest_histogram([5]) == 5 largest_histogram([5, 3]) == 6 largest_histogram([1, 1, 4, 1]) == 4 largest_histogram([1, 1, 3, 1]) == 4 largest_histogram([2, 1, 4, 5, 1, 3, 3]) == 8

代碼實現

def largest_histogram(histogram):i = 0max_value = 0stack = []histogram.append(0)while i < len(histogram):if len(stack) == 0 or histogram[stack[-1]] <= histogram[i]:stack.append(i)i += 1else:now_idx = stack.pop()if len(stack) == 0:max_value = max(max_value,i * histogram[now_idx])else: max_value = max(max_value,(i- stack[-1] -1) * histogram[now_idx])return max_valueif __name__ == "__main__":#These "asserts" using only for self-checking and not necessary for auto-testingassert largest_histogram([5]) == 5, "one is always the biggest"assert largest_histogram([5, 3]) == 6, "two are smallest X 2"assert largest_histogram([1, 1, 4, 1]) == 4, "vertical"assert largest_histogram([1, 1, 3, 1]) == 4, "horizontal"assert largest_histogram([2, 1, 4, 5, 1, 3, 3]) == 8, "complex"print("Done! Go check it!")

大神解答

大神解答 NO.1

def largest_histogram(h):result = min(h) * len(h)for w in range(1, len(h)):for i in range(len(h) - w + 1):result = max(result, min(h[i:i + w]) * w)return result

大神解答 NO.2

def largest_histogram(h):n = len(h)return max((j - i) * min(h[i:j]) for i in range(n) for j in range(i+1, n+1))

大神解答 NO.3

def largest_histogram(histogram):return max(height * max(len(strip) for strip in ''.join('x' if x >= height else ' ' for x in histogram).split()) for height in set(histogram))

大神解答 NO.4

def mesure(hist):return min(hist) * len(hist)def sub_histograms(hist):for start in range(len(hist)):for stop in range(start+1, len(hist)+1):yield hist[start:stop]def largest_histogram(histogram):return max(map(mesure, sub_histograms(histogram)))

總結

以上是生活随笔為你收集整理的【Python CheckiO 题解】Largest Rectangle in a Histogram的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 久久免费福利 | 日韩一区二 | 美女aaa| 法国少妇愉情理伦片 | 欧美jizz欧美性大全 | 国产视频四区 | 欧美日韩一区二区三区电影 | 一级在线看 | 午夜精品一区二区在线观看 | 亚洲一区欧洲二区 | 亚洲美女视频网站 | 黄色最新网址 | 91国在线啪 | 卡通动漫亚洲综合 | 91射区 | 玉女心经在线看 | 嫩草影院在线免费观看 | 中文字幕乱码在线人视频 | 欧州一区二区三区 | 亚洲七区| 中文字幕xxxx | 中文字幕精品在线观看 | 欧美a在线播放 | 日韩视频免费观看高清完整版在线观看 | 亚洲欧美中日韩 | 在线免费观看av的网站 | 少妇精品一区二区 | 亚洲三区在线播放 | 少妇色综合 | 久操福利在线 | 亚洲精品免费在线 | 欧美极品少妇xxxxⅹ免费视频 | 亚洲熟妇无码久久精品 | 精品国产97| 国产精品久久久久久久一区探花 | 人人爽久久涩噜噜噜网站 | 三级4级全黄60分钟 成人自拍视频 | 无码久久av一区二区三区 | 成年视频在线 | 欧美一区二区激情 | 琪琪成人 | 韩国黄色片网站 | 天堂在线视频tv | 亚洲欧美亚洲 | 精品人妻一区二区三区日产 | www久久 | 警察高h荡肉呻吟男男 | 污片网站| 天堂色网 | 色窝窝无码一区二区三区成人网站 | 中文字幕久久久 | 欧美一二 | 日韩视频免费观看高清完整版在线观看 | 日韩va亚洲va欧美va久久 | 国产chinese中国hdxxxx | 天天干天天天天 | 亚洲AV无码国产日韩久久 | 成人在线观看一区二区三区 | 黄色a区| 欧美日韩人妻精品一区在线 | 国产日韩欧美日韩大片 | 性欧美17一18内谢 | 亚洲天堂一区二区三区 | 日韩sese| 无码人妻精品一区二区蜜桃色欲 | 久操伊人 | 国产美女无遮挡网站 | 欧美熟妇激情一区二区三区 | 日本在线观看一区二区三区 | 69久久精品| 激情av在线 | 精品熟女一区二区三区 | 亚洲一级二级 | 久久精彩免费视频 | 精产国品一区二区三区 | 国产亚洲一区二区在线 | 欧美在线一二三四区 | 国产精品一区二区三 | 久久99伊人 | 午夜插插插 | 色.com| 91欧美日韩国产 | www.亚洲天堂| 青青草国产在线 | 伊人影院在线观看视频 | 亚洲黄色网络 | 日本成人精品视频 | 日少妇的逼 | 性生活毛片 | 国产成人啪免费观看软件 | 国产电影免费观看高清完整版视频 | 国产精选久久 | 精品看片 | 激情九九 | 欧美精品a区| 日本中文有码 | 日本中文字幕在线观看视频 | 极品少妇xxxx精品少妇偷拍 | 无遮挡aaaaa大片免费看 |