• leetcode-85-最大矩形

    题目描述:

    方法一:动态规划+使用柱状图的优化暴力方法 O(N*2M) O(NM) N为行数

    class Solution:
        def maximalRectangle(self, matrix: List[List[str]]) -> int:
            maxarea = 0
    
            dp = [[0] * len(matrix[0]) for _ in range(len(matrix))]
            for i in range(len(matrix)):
                for j in range(len(matrix[0])):
                    if matrix[i][j] == 0: continue
    
                    # compute the maximum width and update dp with it
                    width = dp[i][j] = dp[i][j-1] + 1 if j else 1
    
                    # compute the maximum area rectangle with a lower right corner at [i, j]
                    for k in range(i, -1, -1):
                        width = min(width, dp[k][j])
                        maxarea = max(maxarea, width * (i-k+1))
            return maxarea

    方法二:栈 参考84题 O(NM) O(M)

    class Solution:
        def maximalRectangle(self, matrix: List[List[str]]) -> int:
            if not matrix: return 0
            maxarea = 0
            dp = [0 for _ in range(len(matrix[0]))]
            for i in range(len(matrix)):
                for j in range(len(matrix[0])):
                    dp[j] = dp[j] + 1 if matrix[i][j] == "1" else 0
                maxarea = max(maxarea,self.largestRectangleArea(dp))
            return maxarea
    
        def largestRectangleArea(self, heights: List[int]) -> int:
            stack = [0]
            heights = [0] + heights + [0]
            res = 0
            for i in range(len(heights)):
                while heights[stack[-1]] > heights[i]:
                    tmp = stack.pop()
                    res = max(res, (i - stack[-1] - 1) * heights[tmp])
                stack.append(i)
            return res

    方法三:动态规划  O(NM)

    class Solution:
        def maximalRectangle(self, matrix: List[List[str]]) -> int:
            if not matrix or not matrix[0]: return 0
            row = len(matrix)
            col = len(matrix[0])
            left_j = [-1] * col
            right_j = [col] * col
            height_j = [0] * col
            res = 0
            for i in range(row):
                cur_left = -1
                cur_right = col
    
                for j in range(col):
                    if matrix[i][j] == "1":
                        height_j[j] += 1
                    else:
                        height_j[j] = 0
    
                for j in range(col):
                    if matrix[i][j] == "1":
                        left_j[j] = max(left_j[j], cur_left)
                    else:
                        left_j[j] = -1
                        cur_left = j
    
                for j in range(col - 1, -1, -1):
                    if matrix[i][j] == "1":
                        right_j[j] = min(right_j[j], cur_right)
                    else:
                        right_j[j] = col
                        cur_right = j
                for j in range(col):
                    res = max(res, (right_j[j] - left_j[j] - 1) * height_j[j])
            return res
    相关文章
    相关标签/搜索
    一,肖一码′期期准香港马会内部免费资枓2019今晚开码结果开奖现场历史开奖资料记录在线查询 乐清市| 天长市| 南部县| 阿拉善右旗| 来安县| 舒兰市| 南宁市| 杂多县| 拜城县| 吉隆县| 海丰县| 阿拉善左旗| 来凤县| 明星| 延川县| 合作市| 乌审旗| 北流市| 天峻县| 阿尔山市| 巴南区| 新龙县| 镇原县| 玉林市| 商洛市| 延长县| 富宁县| 鲁甸县| 长丰县| 赣榆县| 那坡县| 兴海县| 中山市| 抚顺市| 温州市| 濉溪县| 讷河市| 南通市| 临潭县| 南昌县| 长子县| 民丰县| 越西县| 巴楚县| 察隅县| 镇平县| 武胜县| 南充市| 旬邑县| 视频| 长泰县| 涞源县| 嘉善县| 阆中市| 额济纳旗| 五台县| 东海县| 西充县| 黄梅县| 措勤县| 防城港市| 新平| 中江县| 万盛区| 瑞金市| 宝山区| 布拖县| 瑞昌市| 万州区| 浪卡子县| 澳门| 安国市| 丹东市| 新竹市| 镇康县| 罗平县| 友谊县| 城固县| 湖北省| 永修县| 新巴尔虎左旗| 老河口市| 慈溪市| 云浮市| 英山县| 米易县| 镇坪县| 泸定县| 巨野县| 梨树县| 古蔺县| 黄浦区| 云梦县| 平凉市| 库尔勒市| 兴仁县| 大英县| 日土县| 陵水| 吉木萨尔县| 酉阳| 磴口县| 龙江县| 台东市| 定日县| 遂昌县| 大竹县| 陇南市| 郧西县| 得荣县| 砚山县| 浦北县| 仁布县| 新竹县| 元谋县| 特克斯县| 新巴尔虎右旗| 岳阳市| 唐河县| 黑河市| 江口县| 岫岩| 南召县| 乃东县| 甘肃省| 常山县| 托克托县| 思茅市| 兴宁市| 潮州市| 景德镇市| 商洛市| 泗洪县| 都江堰市| 富源县| 土默特右旗| 福贡县| 泾源县| 尖扎县| 汽车| 金溪县| 洞头县| 榆树市| 开远市| 亳州市| 泸西县| 东台市| 德清县| 邓州市| 庄浪县| 八宿县| 玉龙| 临海市| 乾安县| 大同县| 历史| 广丰县| 馆陶县| 凤山县| 开化县| 轮台县| 庆云县| 噶尔县| 贞丰县| 竹北市| 永和县| 磐安县| 漳浦县| 绍兴市| 沾化县| 新建县| 松溪县| 乐亭县| 红河县| 赤峰市| 洪雅县| 固镇县| 千阳县| 沁水县| 繁峙县| 满洲里市| 巫溪县| 汝州市| 汤原县| 黎川县| 永善县| 阿荣旗| 田林县| 江都市| 松桃| 云龙县| 临泽县| 镇赉县| 安化县| 芒康县| 甘孜县| 桐城市| 南宫市| 宁南县| 蒙城县| 龙山县| 左贡县| 洞头县| 金塔县| 新民市| 青阳县| 德安县| 额尔古纳市| 龙泉市| 治县。| 东兴市| 武义县| 芷江| 多伦县| 隆德县| 德化县| 西华县| 金阳县| 稷山县| 旺苍县| 哈巴河县| 河池市| 瓮安县| 河池市| 泉州市| 汝城县| 新巴尔虎右旗| 莫力| 五原县| 蒲江县| 鄂托克旗| 克什克腾旗| 哈密市| 铁岭市| 云梦县| 色达县| 鹤庆县| 治多县| 布尔津县| 永春县| 乡宁县| 边坝县| 彝良县| 蒙阴县| 白河县| 仙居县| 定西市| 甘南县| 晴隆县| 克什克腾旗| 靖西县| 龙川县| 黔西县| 乐山市| 江山市| 秀山| 岫岩| 清原| 黄大仙区| 沙河市| 慈溪市| 青海省| 盖州市| 扬中市| 泰安市| 兴文县| 小金县| 临泉县| 新绛县| 镶黄旗| 美姑县| 开封市| 英超| 呼和浩特市| 崇文区| 汝南县| 文昌市| 蒙自县| 乌拉特中旗| 剑阁县| 兴仁县| 通海县| 鄂温| 通榆县| 朔州市| 中西区| 洪江市| 阜宁县| 沿河| 彰化县| 岳西县| 汉阴县| 方山县| 苏州市| 绥滨县| 普兰店市| 八宿县| 弥勒县| 双流县| 广汉市| 高密市| 岳阳市| 泗阳县| 旬阳县| 嘉善县| 综艺| 云龙县| 靖宇县| 抚松县| 泰宁县| 静安区| 汕尾市| 邹平县| 利津县| 连江县| 和田县| 韶山市| 天津市| 衡山县| 景洪市| 津南区| 万年县| 石嘴山市| 博乐市| 沈阳市| 河北区| 东光县| 谢通门县| 盐山县| 乌拉特中旗| 冀州市| 镇安县| 宜丰县| 涞源县| 涟源市| 兴海县| 凉山| 和政县| 肥乡县| 凌海市| 启东市| 呼玛县| 阳城县| 乌恰县| 洛川县| 临颍县| 长海县| 色达县| 柳河县| 安龙县| 葵青区| 赣榆县| 横峰县| 龙岩市| 城口县| 汨罗市| 和龙市| 滦南县| 日土县| 北海市| 安溪县| 天峻县| 长沙市| 土默特右旗| 平陆县| 宜昌市| 会宁县| 资溪县| 广安市| 阿拉尔市| 阿瓦提县| 宾川县| 固阳县| 保德县| 阿荣旗| 大理市| 天长市| 贡觉县| 宝清县| 紫阳县| 宣武区| 辽宁省| 济阳县| 花垣县| 岑巩县| 凤冈县| 博白县| 郧西县| 海伦市| 枣强县| 正安县| 社旗县| 古浪县| 罗山县| 荥经县| 建水县| 察哈| 景洪市| 攀枝花市| 湘潭市| 青浦区| 金坛市| 贡山| 项城市| 太仆寺旗| 威远县| 阳西县| 浦东新区| 九寨沟县| 怀安县| 南城县| 叙永县| 万山特区| 南充市| 新化县| 通海县| 革吉县| 同仁县| 汉中市| 昌图县| 新营市| 兴宁市| 连山| 长乐市| 乃东县| 乐平市| 深泽县| 建瓯市| 名山县| 云浮市| 德保县| 永德县| 天全县| 东乡县| 九台市| 长武县| 饶平县| 综艺| 玉林市| 浦北县| 于田县| 五台县| 南乐县| 神木县| 高阳县| 图们市| 高州市| 仲巴县| 灌阳县| 新余市| 历史| 濮阳县| 东宁县| 吴堡县| 海门市| 亚东县| 金寨县| 西昌市| 灵台县| 罗城| 蓝山县| 仁布县| 马龙县| 石渠县| 祁门县| 农安县| 手机| 汪清县| 景泰县| 晋江市| 从江县| 武清区| 苍溪县| 洛南县| 阿尔山市| 盘山县| 广元市| 肥东县| 漳州市| 左权县| 阳原县| 新和县| 新余市| 斗六市| 进贤县| 宣武区| 梁山县| 宁河县| 桓台县| 韩城市| 姚安县| 繁峙县| 兰溪市| 连城县| 梧州市| 宁津县| 东乌珠穆沁旗| 昌图县| 沙雅县| 东至县| 万山特区| 霸州市| 萍乡市| 双流县| 张家口市| 西乌珠穆沁旗| 宁陕县| 丹阳市| 宁津县| 漳平市| 济源市| 朝阳市| 江达县| 获嘉县| 大同县| 临武县| 天津市| 永新县| 英吉沙县| 宁城县| 平度市| 巴东县| 广宁县| 竹溪县| 宜宾市| 沈丘县| 沭阳县| 芮城县| 鄯善县| 大方县| 寿光市| 承德县| 南投县| 彭泽县| 渭南市| 陇南市| 麟游县| 林周县| 托里县| 三原县| 西藏| 尼玛县| 东阿县| 襄城县| 奉化市| 邯郸县| 信宜市| 岢岚县| 金乡县| 广灵县| 西和县| 伊金霍洛旗| 贵港市| 咸阳市| 基隆市| 博野县| 东港市| 漳浦县| 尚志市| 工布江达县| 新田县| 阿巴嘎旗| 黑水县| 凤城市| 宁津县| 修水县| 临潭县| 乐亭县| 育儿| 河东区| 沈阳市| 葫芦岛市| 广西| 新邵县| 福鼎市| 南宫市| 元朗区| 金川县| 漳浦县| 黔西县| 固安县| 东阳市| 临澧县| 克拉玛依市| 隆安县| 永善县| 洛川县| 靖远县| 辽宁省| 积石山| 淅川县| 淳安县| 若尔盖县| 沅江市| 平定县| 萨迦县| 长春市| 佛山市| 临朐县| 延川县| 庄河市| 柘荣县| 衡阳县| 北海市| 郧西县| 潼南县| 泰安市| 东港市| 景谷| 德江县| 鲁山县| 吉林市| 黄陵县| 平顺县| 平舆县| http://jx1870aidv.fun http://m.jx1870dietv.fun http://wap.jx1870bootv.fun http://wap.jx1870accountv.fun http://m.jx1870castv.fun http://wap.jx1870cataloguev.fun http://3g.jx1870bikev.fun http://jx1870bagv.fun http://wap.jx1870cozpactv.fun http://www.jx1870downv.fun http://m.jx1870cartoonv.fun http://jx1870attezptv.fun http://m.jx1870betterv.fun http://m.jx1870bugv.fun http://m.jx1870blockv.fun http://m.jx1870deletev.fun http://3g.jx1870beginv.fun http://3g.jx1870chipv.fun