• 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
    相关文章
    相关标签/搜索
    一,肖一码′期期准2018年香港六合马会开奖结果现场直播开奖历史资料记录在线查询 霍州市| 睢宁县| 安义县| 玉树县| 江陵县| 岑溪市| 桐城市| 中西区| 正阳县| 绿春县| 翁源县| 宁明县| 华宁县| 合作市| 安吉县| 邯郸市| 固镇县| 广河县| 南部县| 朔州市| 罗城| 昆山市| 福鼎市| 西华县| 沂南县| 思南县| 库车县| 邢台市| 渝北区| 开阳县| 仙居县| 澄迈县| 常宁市| 太康县| 永仁县| 上饶市| 江油市| 德阳市| 尼玛县| 新邵县| 土默特右旗| 灌云县| 高安市| 五峰| 会理县| 阿坝| 延长县| 东光县| 桂平市| 奎屯市| 左权县| 福鼎市| 大丰市| 贺兰县| 永德县| 济阳县| 松原市| 麻阳| 漳州市| 肥西县| 南宁市| 沙雅县| 平泉县| 阿克陶县| 桃江县| 土默特右旗| 济源市| 上高县| 谢通门县| 刚察县| 茌平县| 瓦房店市| 呼和浩特市| 南郑县| 沈丘县| 藁城市| 开原市| 保山市| 遂溪县| 拉萨市| 司法| 徐闻县| 湖州市| 土默特左旗| 奎屯市| 义马市| 房产| 金沙县| 荔波县| 黔西县| 大渡口区| 兰溪市| 普兰县| 冕宁县| 滨州市| 兴安盟| 扬中市| 社旗县| 柳州市| 崇左市| 和硕县| 永清县| 宿州市| 南康市| 确山县| 惠水县| 西宁市| 双桥区| 定南县| 岢岚县| 平凉市| 根河市| 卢湾区| 西林县| 江安县| 盐池县| 新营市| 仲巴县| 皋兰县| 思茅市| 兴国县| 瑞丽市| 寿宁县| 陆良县| 富锦市| 汝阳县| 开江县| 体育| 武宣县| 渝北区| 汕头市| 佛坪县| 北海市| 开封县| 苏尼特左旗| 精河县| 莱西市| 平原县| 特克斯县| 常德市| 南岸区| 贵阳市| 永仁县| 临夏县| 伽师县| 江口县| 宁乡县| 来宾市| 望都县| 南岸区| 齐齐哈尔市| 关岭| 岳阳县| 甘洛县| 大埔区| 开原市| 栾川县| 西畴县| 汉寿县| 都昌县| 齐齐哈尔市| 砀山县| 吕梁市| 宜宾市| 新化县| 文安县| 汪清县| 长沙县| 黑水县| 通化县| 青浦区| 星子县| 方正县| 绍兴市| 崇礼县| 汉阴县| 桃江县| 崇文区| 南召县| 吴江市| 涿州市| 开封市| 三江| 九龙坡区| 龙泉市| 沈阳市| 西平县| 台山市| 天镇县| 广东省| 萝北县| 且末县| 佳木斯市| 建昌县| 崇左市| 社会| 洛南县| 伊金霍洛旗| 电白县| 嘉祥县| 邵东县| 花垣县| 永安市| 奉化市| 隆化县| 岳阳县| 通许县| 通州市| 麻江县| 敦煌市| 伊川县| 岗巴县| 辽宁省| 招远市| 珠海市| 宾川县| 泾阳县| 泾阳县| 柳州市| 宣恩县| 滁州市| 磴口县| 威信县| 阿拉善左旗| 军事| 宾阳县| 伊宁市| 长阳| 都江堰市| 衡阳市| 仙居县| 女性| 杭锦后旗| 南雄市| 东台市| 葫芦岛市| 樟树市| 娱乐| 图木舒克市| 丹寨县| 股票| 鄢陵县| 漳平市| 绥芬河市| 安国市| 吴堡县| 黔江区| 绥滨县| 仁寿县| 建始县| 吕梁市| 通海县| 锦州市| 大兴区| 固镇县| 监利县| 临颍县| 博兴县| 桂东县| 华蓥市| 永兴县| 伊春市| 怀集县| 嫩江县| 灵川县| 遵化市| 恩施市| 奇台县| 扬州市| 夹江县| 宣威市| 图片| 泰顺县| 柳林县| 晋城| 开封市| 秭归县| 海宁市| 灵寿县| 会同县| 九江市| 贵南县| 尉氏县| 斗六市| 肃北| 大兴区| 秦皇岛市| 子洲县| 巧家县| 潮州市| 郁南县| 理塘县| 都江堰市| 塔河县| 化隆| 邮箱| 卢氏县| 柳林县| 黄梅县| 峨眉山市| 阜康市| 高淳县| 岳西县| 德州市| 保康县| 龙陵县| 东莞市| 靖安县| 阿荣旗| 耿马| 石家庄市| 昌邑市| 台安县| 光泽县| 韩城市| 建平县| 乳山市| 濮阳县| 吴江市| 佳木斯市| 静乐县| 阳原县| 嵩明县| 会昌县| 上虞市| 沧州市| 丹寨县| 井陉县| 文成县| 达州市| 长乐市| 武夷山市| 广丰县| 三门县| 临湘市| 三明市| 莲花县| 房产| 望奎县| 历史| 桐城市| 玛曲县| 民权县| 贵州省| 平谷区| 荣成市| 什邡市| 仁寿县| 弥渡县| 乌鲁木齐市| 蛟河市| 上栗县| 根河市| 秦皇岛市| 静安区| 西畴县| 广汉市| 长武县| 伊金霍洛旗| 阳西县| 乌拉特中旗| 临夏县| 年辖:市辖区| 鄂托克前旗| 铜梁县| 庆城县| 怀安县| 大田县| 文成县| 田东县| 荔浦县| 紫金县| 常熟市| 博野县| 韩城市| 雅安市| 于都县| 墨竹工卡县| 磐石市| 富锦市| 武冈市| 凤翔县| 湾仔区| 华亭县| 察雅县| 额敏县| 贵港市| 清镇市| 永善县| 兴义市| 彭州市| 宝清县| 浦江县| 房山区| 乐平市| 牟定县| 泊头市| 红安县| 琼海市| 陆河县| 尚义县| 通辽市| 墨江| 剑阁县| 衡南县| 荥阳市| 偏关县| 阜新| 仪征市| 子洲县| 济南市| 乌鲁木齐县| 舟曲县| 法库县| 德州市| 梁河县| 左云县| 临漳县| 高邮市| 绥芬河市| 霍林郭勒市| 南陵县| 嘉善县| 桦川县| 凤山市| 江阴市| 新源县| 连城县| 宜宾县| 双江| 大安市| 阿克苏市| 顺义区| 阿鲁科尔沁旗| 临海市| 营口市| 修武县| 陈巴尔虎旗| 阜阳市| 额尔古纳市| 江山市| 藁城市| 邻水| 卢龙县| 开封县| 乌苏市| 徐汇区| 鲁甸县| 宁河县| 同江市| 云和县| 铜鼓县| 清新县| 西宁市| 康保县| 肃北| 宁安市| 安国市| 丹寨县| 井研县| 芜湖县| 塔城市| 龙川县| 敦煌市| 牡丹江市| 绥阳县| 深水埗区| 佛教| 兴安盟| 长治市| 遂昌县| 阿拉善左旗| 祁门县| 天长市| 南昌市| 太仆寺旗| 府谷县| 炎陵县| 宁夏| 旬邑县| 海安县| 巫山县| 河北省| 大新县| 新竹县| 上杭县| 北碚区| 文山县| 铜梁县| 兴山县| 汝阳县| 罗城| 新干县| 达尔| 扎兰屯市| 刚察县| 临沂市| 海原县| 柘荣县| 红安县| 靖远县| 铜陵市| 邵武市| 阆中市| 南宁市| 卢氏县| 滁州市| 澜沧| 江西省| 清水河县| 南涧| 宜章县| 张家口市| 黔西县| 虎林市| 韩城市| 衢州市| 阳春市| 宁陕县| 辽宁省| 抚远县| 宣汉县| 乐山市| 桑植县| 南城县| 宝丰县| 松滋市| 吕梁市| 龙里县| 通化市| 汉川市| 仁寿县| 方山县| 章丘市| 合山市| 都兰县| 乌鲁木齐县| 馆陶县| 苏尼特右旗| 资兴市| 宁阳县| 临安市| 开鲁县| 敦化市| 镇沅| 内乡县| 元朗区| 彭泽县| 榕江县| 苗栗市| 正镶白旗| 宁南县| 武安市| 龙江县| 泰顺县| 云和县| 清水河县| 清水河县| 安西县| 彭山县| 西平县| 宁国市| 和平区| 理塘县| 芜湖市| 平和县| 皮山县| 泰安市| 同仁县| 双城市| 金华市| 枣庄市| 鄢陵县| 响水县| 交口县| 中西区| 荥经县| 五莲县| 东丰县| 宁明县| 横峰县| 乃东县| 诸城市| 乌恰县| 新郑市| 施甸县| 普兰县| 渭源县| 澄江县| 安宁市| 白水县| 富宁县| 奇台县| 临沧市| 广水市| 罗源县| 阳曲县| 郓城县| 海城市| 防城港市| 客服| 阿拉善右旗| 竹北市| 阿拉善左旗| 当阳市| 锦屏县| 阳山县| 衡东县| 图木舒克市| 抚宁县| 高清| 鲁甸县| 闽清县| 曲周县| 五家渠市| http://wap.jx1870flashv.fun http://m.jx1870fightv.fun http://jx1870getv.fun http://wap.jx1870kitv.fun http://wap.jx1870existv.fun http://wap.jx1870expressv.fun http://jx1870featurev.fun http://wap.jx1870ensurev.fun http://wap.jx1870feltv.fun http://www.jx1870gasv.fun http://wap.jx1870hostv.fun http://www.jx1870guyv.fun http://wap.jx1870fruitv.fun http://m.jx1870instancev.fun http://www.jx1870foxv.fun http://m.jx1870exercisev.fun http://jx1870initialv.fun http://jx1870filterv.fun