<menu id="gc4q0"></menu>
  • <menu id="gc4q0"></menu>
  • <input id="gc4q0"></input>
    <nav id="gc4q0"></nav>
  • <input id="gc4q0"><acronym id="gc4q0"></acronym></input>
  • 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
    相关文章
    相关标签/搜索
    香港最快現场开奖结果118图库天下彩天空彩免费大全香港蓝月亮精选资料六合宝典天天彩票新版 丹阳市| 泸定县| 沾益县| 建宁县| 大足县| 盐亭县| 崇州市| 济宁市| 英德市| 丽水市| 开化县| 务川| 衢州市| 浦城县| 陈巴尔虎旗| 松原市| 鄄城县| 加查县| 太白县| 长阳| 滕州市| 承德县| 武安市| 陕西省| 惠安县| 康马县| 铜鼓县| 耿马| 静宁县| 南昌县| 保山市| 若羌县| 方城县| 治多县| 巴林左旗| 盈江县| 天台县| 静海县| 台南市| 定安县| 华阴市| 嵊泗县| 曲沃县| 宜君县| 抚远县| 淮阳县| 济源市| 通许县| 丹棱县| 安塞县| 武川县| 连山| 专栏| 义马市| 濮阳县| 洛宁县| 古浪县| 新源县| 武城县| 金昌市| 安化县| 都安| 贵州省| 康马县| 唐海县| 门头沟区| 富平县| 唐河县| 永康市| 安西县| 蕲春县| 延寿县| 苍梧县| 德兴市| 梧州市| 金寨县| 阿拉尔市| 安顺市| 宣恩县| 喀喇| 广州市| 汝城县| 钦州市| 台安县| 卓资县| 铜川市| 沙坪坝区| 阿拉尔市| 清水河县| 平阳县| 尖扎县| 龙江县| 青州市| 册亨县| 岑溪市| 马龙县| 日喀则市| 宁波市| 象山县| 万山特区| 西峡县| 杭锦后旗| 南宁市| 长丰县| 大荔县| 衢州市| 利津县| 安多县| 衡水市| 东海县| 丰宁| 津市市| 古浪县| 伊金霍洛旗| 章丘市| 青阳县| 新民市| 苗栗市| 措美县| 贵阳市| 长武县| 根河市| 中牟县| 镇康县| 敖汉旗| 宿松县| 潢川县| 盐亭县| 玉山县| 永顺县| 南汇区| 彭阳县| 会理县| 郑州市| 亳州市| 普兰县| 嘉善县| 黄大仙区| 汽车| 罗田县| 平昌县| 丹寨县| 成安县| 南郑县| 湘潭县| 太湖县| 太仆寺旗| 丰都县| 东丽区| 台南市| 德兴市| 张家川| 乌恰县| 塔河县| 开阳县| 秀山| 昌宁县| 开原市| 樟树市| 聊城市| 祁门县| 蒙阴县| 聊城市| 沭阳县| 红桥区| 北碚区| 喀喇沁旗| 达孜县| 招远市| 通江县| 泊头市| 汝州市| 宕昌县| 宁城县| 木兰县| 遵化市| 黄浦区| 淄博市| 通河县| 德令哈市| 麻栗坡县| 庆城县| 海安县| 彝良县| 道真| 唐海县| 炎陵县| 武安市| 赤峰市| 唐海县| 巴马| 阜南县| 象山县| 法库县| 涿州市| 青神县| 东阳市| 呼图壁县| 吴江市| 清镇市| 阿合奇县| 陵川县| 无棣县| 高要市| 延长县| 禄劝| 玉门市| 江城| 永州市| 稷山县| 白水县| 三亚市| 屏南县| 万宁市| 邢台县| 麻江县| 多伦县| 黄冈市| 和静县| 通榆县| 喀喇沁旗| 苗栗市| 巧家县| 中西区| 瑞丽市| 汉川市| 马鞍山市| 阿克苏市| 阜南县| 克拉玛依市| 邛崃市| 疏附县| 桃江县| 巫溪县| 香港| 惠东县| 于田县| 额敏县| 元谋县| 思南县| 中方县| 绩溪县| 山西省| 盈江县| 蒙阴县| 阿拉尔市| 林甸县| 德格县| 阿克陶县| 丹阳市| 湖北省| 工布江达县| 马关县| 革吉县| 馆陶县| 耿马| 洞口县| 衡南县| 军事| 新蔡县| 祁阳县| 梧州市| 土默特左旗| 兴和县| 钦州市| 西青区| 五河县| 深圳市| 贺兰县| 张北县| 金平| 东至县| 黄山市| 双辽市| 石泉县| 秭归县| 平和县| 漳平市| 北票市| 南木林县| 正阳县| 略阳县| 凌海市| 新泰市| 景洪市| 松溪县| 蕉岭县| 巫溪县| 揭阳市| 万安县| 黄梅县| 通山县| 金川县| 团风县| 宣武区| 黄大仙区| 宜川县| 来凤县| 陇南市| 辽源市| 华容县| 宜宾市| 连平县| 兴业县| 宜春市| 马鞍山市| 兖州市| 望城县| 天气| 丹阳市| 思南县| 准格尔旗| 铜梁县| 高邑县| 宜都市| 鄂伦春自治旗| 四川省| 紫阳县| 南郑县| 海城市| 台安县| 锡林浩特市| 抚顺县| 刚察县| 阳春市| 永修县| 明水县| 遵义县| 鲁山县| 东光县| 灵川县| 西乌| 临泽县| 宁都县| 大渡口区| 沙洋县| 夹江县| 乌拉特中旗| 奉化市| 乌海市| 太康县| 鸡泽县| 广南县| 德安县| 乃东县| 江源县| 青州市| 博乐市| 平南县| 白银市| 奈曼旗| 东乡县| 卢氏县| 公安县| 郁南县| 临清市| 壶关县| 察雅县| 上林县| 磐石市| 乌苏市| 郑州市| 泾川县| 道真| 辛集市| 盖州市| 桦甸市| 肇庆市| 宕昌县| 宜兰县| 平泉县| 辽阳市| 太原市| 大港区| 手机| 偃师市| 木兰县| 青海省| 岑溪市| 温泉县| 饶河县| 龙陵县| 广西| 仪征市| 栾川县| 鱼台县| 五华县| 峨眉山市| 大竹县| 舞钢市| 延吉市| 库伦旗| 客服| 七台河市| 石林| 鹤庆县| 安化县| 高台县| 山东省| 大竹县| 博乐市| 棋牌| 台北县| 水富县| 简阳市| 舞阳县| 南宫市| 阿勒泰市| 同德县| 灵台县| 眉山市| 肇源县| 宁夏| 辛集市| 苍山县| 米易县| 沙雅县| 乌拉特中旗| 丰顺县| 丰城市| 罗田县| 项城市| 逊克县| 时尚| 双牌县| 兰溪市| 阿合奇县| 荣昌县| 永嘉县| 聂拉木县| 金平| 晋城| 建昌县| 西华县| 子洲县| 社会| 伊通| 千阳县| 灵台县| 博客| 普安县| 荆州市| 安吉县| 巍山| 云南省| 永川市| 石景山区| 平顶山市| 河东区| 依兰县| 永兴县| 曲靖市| 松桃| 屯留县| 四子王旗| 闻喜县| 鄂托克旗| 阿坝| 洛阳市| 江陵县| 清水河县| 美姑县| 东台市| 巫山县| 临漳县| 邹平县| 海口市| 沧州市| 宁德市| 百色市| 堆龙德庆县| 梅河口市| 漠河县| 江城| 阿坝县| 年辖:市辖区| 宕昌县| 元阳县| 汉寿县| 肃宁县| 玉屏| 磐石市| 淮北市| 额济纳旗| 丹凤县| 浦江县| 东安县| 清新县| 宁远县| 祁东县| 东方市| 长宁县| 赤壁市| 宜城市| 石棉县| 穆棱市| 务川| 巴东县| 防城港市| 平遥县| 西华县| 雷山县| 滦南县| 合川市| 定日县| 酒泉市| 台南市| 洛川县| 左贡县| 巩义市| 兰西县| 临漳县| 丹寨县| 杭锦后旗| 荥经县| 扎鲁特旗| 远安县| 宝鸡市| 黎城县| 新沂市| 汕尾市| 新宁县| 晴隆县| 麻江县| 安龙县| 玛纳斯县| 扎囊县| 凭祥市| 金沙县| 桂阳县| 永年县| 聂拉木县| 新野县| 高陵县| 同江市| 仪陇县| 靖远县| 荥阳市| 敖汉旗| 安阳市| 宝兴县| 敦煌市| 嘉义县| 油尖旺区| 陕西省| 荔浦县| 广东省| 大丰市| 昌江| 郁南县| 梅河口市| 蓝田县| 平江县| 房山区| 广州市| 洛南县| 唐山市| 旌德县| 麻栗坡县| 和顺县| 淮南市| 武平县| 金溪县| 海兴县| 长垣县| 柏乡县| 武山县| 兴义市| 宿迁市| 米易县| 嘉兴市| 瑞丽市| 辽宁省| 辉县市| 峨眉山市| 崇文区| 房产| 乃东县| 乌兰县| 姚安县| 登封市| 体育| 富民县| 衡山县| 大丰市| 平凉市| 加查县| 灵宝市| 三门峡市| 灵璧县| 会宁县| 射洪县| 佛教| 克什克腾旗| 蕉岭县| 新竹市| 石景山区| 安徽省| 涡阳县| 高青县| 南召县| 奉贤区| 沛县| 股票| 冕宁县| 沁阳市| 定兴县| 满城县| 岑巩县| 孝义市| 绥阳县| 延吉市| 松江区| 崇阳县| 玛曲县| http://ixklms.fit http://www.bm1961xailz.fit http://www.gprxgr.fit http://wap.gkiwgc.fit http://www.jufgvx.fit http://m.trnssj.fit http://www.sxewcr.fit http://wap.hewewp.fit http://m.nsofzb.fit http://m.rmcxum.fit http://xgdhur.fit http://www.dhomyv.fit http://wap.puhctk.fit http://m.rhcfif.fit http://pxqvns.fit http://www.evykum.fit http://m.lntvxs.fit http://www.atmvnk.fit