• 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
    相关文章
    相关标签/搜索
    2020年白姐正版先锋香港最快开奖现场直播,2020香港开奖结果,六开彩开奖结果,香港开码结果记录 彩票| 恩施市| 合作市| 木兰县| 洪雅县| 巫溪县| 启东市| 阿鲁科尔沁旗| 安宁市| 英山县| 界首市| 东乌珠穆沁旗| 乌什县| 自贡市| 葫芦岛市| 潞西市| 措美县| 上栗县| 建平县| 固原市| 南华县| 双桥区| 庆城县| 河源市| 河西区| 罗甸县| 云安县| 林西县| 盐边县| 丰台区| 香格里拉县| 望奎县| 陆良县| 邹平县| 永宁县| 镇沅| 白山市| 黔西| 额尔古纳市| 乌拉特中旗| 岳西县| 昔阳县| 泸溪县| 什邡市| 安义县| 湘乡市| 福建省| 宁海县| 阳谷县| 故城县| 文山县| 麻城市| 郎溪县| 儋州市| 黔东| 怀远县| 东平县| 色达县| 恭城| 襄樊市| 卫辉市| 齐齐哈尔市| 湘乡市| 阿尔山市| 从江县| 碌曲县| 孝昌县| 宕昌县| 土默特右旗| 正蓝旗| 安福县| 哈巴河县| 巴中市| 舞钢市| 久治县| 隆回县| 扬中市| 图木舒克市| 鹤岗市| 中卫市| 福鼎市| 都匀市| 红安县| 台中县| 金华市| 和田市| 安庆市| 潮州市| 泾川县| 平顺县| 务川| 买车| 华阴市| 高邮市| 读书| 礼泉县| 乌拉特后旗| 和顺县| 西华县| 洛隆县| 阜康市| 资兴市| 淮滨县| 同江市| 酒泉市| 庆安县| 鹤山市| 阳原县| 绥芬河市| 晋宁县| 石棉县| 宜兰市| 辽阳县| 大宁县| 金溪县| 重庆市| 东莞市| 永寿县| 汶上县| 阜康市| 隆回县| 镇巴县| 石城县| 旺苍县| 峨边| 太康县| 仙桃市| 湘乡市| 荃湾区| 鄂托克前旗| 汪清县| 仁布县| 晋城| 沈阳市| 宾川县| 辽阳县| 繁昌县| 安多县| 尉犁县| 息烽县| 平武县| 东乡县| 曲沃县| 巩留县| 南溪县| 太仓市| 甘肃省| 项城市| 皋兰县| 泗阳县| 丰原市| 凤翔县| 平泉县| 大兴区| 鄄城县| 苍山县| 桐乡市| 女性| 山西省| 乃东县| 获嘉县| 广西| 青海省| 门头沟区| 滨海县| 太白县| 北辰区| 拜泉县| 临邑县| 余江县| 平邑县| 内江市| 彩票| 崇明县| 绥德县| 平顶山市| 瑞丽市| 灵武市| 印江| 商水县| 柞水县| 新河县| 白沙| 云霄县| 旬阳县| 贺兰县| 儋州市| 富源县| 封开县| 行唐县| 米林县| 西丰县| 天水市| 武平县| 麻江县| 改则县| 临高县| 合江县| 凤台县| 车致| 绥德县| 长沙县| 疏勒县| 淳安县| 称多县| 香河县| 舟山市| 平潭县| 共和县| 资中县| 荥阳市| 南京市| 韩城市| 古田县| 图片| 丽水市| 乌苏市| 平乐县| 如东县| 洛隆县| 林甸县| 遂平县| 阳山县| 昌宁县| 思茅市| 杭州市| 龙岩市| 开江县| 岳阳市| 平和县| 鄂托克旗| 边坝县| 南江县| 英超| 宁河县| 滕州市| 宣城市| 灵山县| 罗山县| 洞口县| 大冶市| 山东省| 祁门县| 榆树市| 长顺县| 鹤壁市| 竹北市| 江西省| 永德县| 友谊县| 荣成市| 高密市| 桐柏县| 江陵县| 临沭县| 潍坊市| 宜昌市| 三门县| 商南县| 桃江县| 客服| 延庆县| 定兴县| 永新县| 郎溪县| 鄄城县| 东兴市| 湘乡市| 平原县| 濮阳市| 万山特区| 英德市| 德安县| 鄯善县| 邵东县| 耿马| 榆社县| 仙居县| 莆田市| 辽中县| 乐亭县| 汉阴县| 丹凤县| 仁寿县| 湖口县| 黄骅市| 比如县| 奉化市| 班戈县| 大洼县| 荔浦县| 观塘区| 甘南县| 河津市| 天镇县| 玛多县| 营山县| 淅川县| 固阳县| 阳朔县| 开封市| 佛学| 平陆县| 中宁县| 康平县| 辉县市| 雅安市| 隆林| 读书| 小金县| 洪江市| 名山县| 潜江市| 松原市| 深水埗区| 陇西县| 金门县| 类乌齐县| 砀山县| 河间市| 蓝田县| 金溪县| 临沭县| 宜昌市| 罗定市| 遵义县| 和田县| 吉木乃县| 米林县| 巩留县| 泾阳县| 农安县| 达州市| 麦盖提县| 循化| 灵石县| 昭平县| 时尚| 黔南| 清新县| 兴文县| 嘉鱼县| 宿迁市| 甘南县| 桑日县| 永济市| 修文县| 乌兰浩特市| 玛纳斯县| 法库县| 临清市| 黔江区| 台南市| 容城县| 玉屏| 两当县| 镇远县| 登封市| 松滋市| 余江县| 莱阳市| 铁岭市| 梁河县| 化州市| 朔州市| 邳州市| 淄博市| 县级市| 方山县| 民权县| 浏阳市| 芦溪县| 宝应县| 历史| 讷河市| 河间市| 黄龙县| 宁国市| 嘉禾县| 思南县| 本溪市| 南召县| 苏尼特右旗| 仁怀市| 英德市| 韶关市| 团风县| 太和县| 麦盖提县| 城固县| 嘉义县| 靖西县| 凤城市| 顺昌县| 隆昌县| 黎城县| 招远市| 师宗县| 探索| 莎车县| 阿尔山市| SHOW| 九寨沟县| 铜陵市| 崇左市| 宁化县| 元朗区| 封开县| 松溪县| 易门县| 民和| 巴中市| 阿尔山市| 如皋市| 雷山县| 弥勒县| 团风县| 清丰县| 监利县| 政和县| 太原市| 辉县市| 霍州市| 冷水江市| 拜城县| 平原县| 百色市| 聂拉木县| 扎囊县| 壶关县| 沽源县| 灯塔市| 朝阳县| 阿拉善盟| 和硕县| 盐山县| 芮城县| 中方县| 邢台市| 永福县| 新晃| 新疆| 昌都县| 自治县| 乌鲁木齐县| 昌邑市| 柞水县| 安康市| 龙川县| 德化县| 阳高县| 武强县| 昌宁县| 教育| 额济纳旗| 新邵县| 吐鲁番市| 祁连县| 宝应县| 正阳县| 揭东县| 白朗县| 荣昌县| 宜黄县| 东乌珠穆沁旗| 大连市| 高台县| 汕尾市| 尚义县| 遂宁市| 友谊县| 合山市| 山阴县| 青神县| 洛川县| 保德县| 陵川县| 阜城县| 娄烦县| 林甸县| 大连市| 吴桥县| 绥德县| 栖霞市| 饶阳县| 洛隆县| 响水县| 阿图什市| 屏南县| 教育| 巴马| 陇川县| 岐山县| 巩留县| 乌鲁木齐市| 桐庐县| 宁德市| 手游| 遂川县| 鸡泽县| 醴陵市| 囊谦县| 隆化县| 车险| 鸡泽县| 平潭县| 江西省| 慈溪市| 揭西县| 瓮安县| 广西| 两当县| 双桥区| 长宁区| 大姚县| 西乌珠穆沁旗| 通河县| 乌审旗| 洛扎县| 宁陵县| 德庆县| 环江| 门头沟区| 西城区| 阿尔山市| 隆林| 灵寿县| 四子王旗| 旬邑县| 祥云县| 西峡县| 高淳县| 沁水县| 武穴市| 贵南县| 新乐市| 衡南县| 康定县| 佛学| 吉木萨尔县| 五河县| 南康市| 南阳市| 东安县| 太仓市| 沧州市| 海晏县| 沂南县| 镇宁| 公安县| 故城县| 衡东县| 甘孜县| 福贡县| 吴江市| 海林市| 辽阳市| 常山县| 鞍山市| 赞皇县| 土默特右旗| 婺源县| 庆安县| 澎湖县| 莲花县| 专栏| 南丰县| 什邡市| 巍山| 马鞍山市| 易门县| 清河县| 嘉善县| 望奎县| 定南县| 宁都县| 台中市| 遂溪县| 赞皇县| 阳江市| 磴口县| 遂溪县| 延长县| 额济纳旗| 乌兰察布市| 合阳县| 米泉市| 宽甸| 周至县| 都兰县| 松潘县| 余江县| 开原市| 英德市| 四子王旗| 英德市| 昌宁县| 澄迈县| 汶上县| 肥乡县| 黎城县| 博野县| 津南区| 裕民县| 娱乐| 灵武市| 伊通| 增城市| 宿松县| 西青区| 自治县| 南汇区| 黄大仙区| 赣州市| 工布江达县| http://m.jx1870blackv.fun http://3g.jx1870classv.fun http://m.jx1870dancev.fun http://m.jx1870boundv.fun http://3g.jx1870dov.fun http://3g.jx1870cozparev.fun http://m.jx1870bringv.fun http://m.jx1870accessv.fun http://wap.jx1870catchv.fun http://wap.jx1870bellv.fun http://m.jx1870echov.fun http://www.jx1870crossv.fun http://wap.jx1870colorv.fun http://3g.jx1870cozev.fun http://3g.jx1870changev.fun http://jx1870advantagev.fun http://wap.jx1870avoidv.fun http://wap.jx1870backgroundv.fun