• 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
    相关文章
    相关标签/搜索
    一,肖一码′期期准天下蓝月亮免费资料大全app,天下蓝月亮精选料大全免费资料最新版预约 嘉兴市| 梁山县| 北辰区| 永平县| 吴旗县| 万荣县| 藁城市| 边坝县| 五寨县| 长泰县| 西城区| 石城县| 巴里| 宝鸡市| 合山市| 东山县| 保靖县| 耒阳市| 田阳县| 蓝山县| 永州市| 商河县| 陆河县| 林甸县| 靖州| 彭水| 延长县| 即墨市| 类乌齐县| 徐水县| 永昌县| 胶州市| 兴国县| 桐庐县| 延津县| 滁州市| 上虞市| 会宁县| 崇文区| 上栗县| 锡林郭勒盟| 木兰县| 牡丹江市| 建始县| 峨山| 呼图壁县| 桂东县| 肥东县| 奉新县| 平泉县| 淮滨县| 疏附县| 古浪县| 扬中市| 五家渠市| 西畴县| 二连浩特市| 扶风县| 东宁县| 武强县| 固阳县| 特克斯县| 赤峰市| 温宿县| 广水市| 桐城市| 沿河| 九寨沟县| 锡林郭勒盟| 白河县| 景宁| 西乌珠穆沁旗| 双柏县| 思茅市| 潮州市| 永安市| 贵南县| 修武县| 班戈县| 二连浩特市| 神木县| 无锡市| 益阳市| 合阳县| 包头市| 延安市| 红河县| 彭山县| 壤塘县| 喜德县| 长兴县| 平塘县| 浦东新区| 噶尔县| 大名县| 榆树市| 晋城| 丹阳市| 饶河县| 绥棱县| 泾川县| 西平县| 称多县| 淮北市| 襄汾县| 德格县| 霍邱县| 惠水县| 湖口县| 利川市| 来宾市| 白玉县| 玉林市| 贵溪市| 尚义县| 塔城市| 都江堰市| 内丘县| 武冈市| 会宁县| 利川市| 周至县| 库伦旗| 高平市| 肇源县| 金寨县| 宜昌市| 泰宁县| 航空| 新竹市| 马关县| 四子王旗| 桐乡市| 天全县| 蒲城县| 同德县| 静海县| 庐江县| 合山市| 邛崃市| 吉安县| 五河县| 怀柔区| 罗江县| 绍兴市| 大姚县| 曲沃县| 长沙县| 潮州市| 普兰店市| 新干县| 诸城市| 福安市| 如东县| 桐柏县| 高淳县| 木里| 秦皇岛市| 额尔古纳市| 镇康县| 呼伦贝尔市| 祁东县| 阳新县| 凤山市| 内丘县| 三门峡市| 嘉兴市| 庆元县| 伽师县| 彩票| 仁化县| 葫芦岛市| 东兰县| 吴江市| 玉林市| 江川县| 容城县| 墨玉县| 武汉市| 双峰县| 石城县| 武川县| 徐水县| 徐水县| 安泽县| 刚察县| 秭归县| 稻城县| 虎林市| 台南县| 烟台市| 肇州县| 庆云县| 大埔县| 仁怀市| 砚山县| 湖南省| 突泉县| 蓝田县| 绥中县| 东光县| 新丰县| 叶城县| 会理县| 库尔勒市| 金沙县| 读书| 新龙县| 澄城县| 凯里市| 大关县| 石首市| 东乡县| 神池县| 饶平县| 怀仁县| 合江县| 凤阳县| 灵川县| 静宁县| 葫芦岛市| 微博| 丘北县| 靖远县| 宁陕县| 沅江市| 将乐县| 赤峰市| 曲松县| 泰州市| 英山县| 玉溪市| 沙雅县| 定襄县| 莱阳市| 威远县| 武穴市| 奉新县| 江西省| 东山县| 耿马| 绥中县| 芦溪县| 沙田区| 安阳市| 承德市| 永善县| 友谊县| 深圳市| 西盟| 伊宁市| 湟中县| 台北县| 海兴县| 庆城县| 施甸县| 永修县| 江城| 凉山| 娱乐| 神池县| 西华县| 昌黎县| 怀远县| 遵义县| 广宁县| 怀远县| 黄山市| 鄂尔多斯市| 交口县| 渝北区| 濉溪县| 馆陶县| 沐川县| 静安区| 都江堰市| 武功县| 曲沃县| 松原市| 永州市| 三台县| 沾化县| 湖北省| 万安县| 资讯| 定日县| 兴安县| 三门峡市| 青龙| 娱乐| 鹤庆县| 德令哈市| 胶南市| 云阳县| 仁化县| 慈利县| 临朐县| 舒兰市| 乌兰浩特市| 柏乡县| 甘德县| 宜章县| 友谊县| 清镇市| 囊谦县| 邹城市| 六枝特区| 连平县| 潞西市| 叶城县| 榆林市| 沅江市| 神农架林区| 全州县| 和林格尔县| 互助| 昌江| 固镇县| 三江| 靖边县| 邢台市| 桂阳县| 汝阳县| 东平县| 抚州市| 英德市| 克东县| 天津市| 深圳市| 永修县| 勃利县| 修文县| 柳林县| 连州市| 车险| 禄劝| 四会市| 易门县| 新宾| 八宿县| 宜章县| 遂川县| 含山县| 井陉县| 柞水县| 小金县| 黎平县| 祁门县| 什邡市| 外汇| 永寿县| 和田县| 太仆寺旗| 牡丹江市| 葫芦岛市| 甘泉县| 丰顺县| 镇平县| 宜阳县| 黔西| 仙游县| 日喀则市| 高碑店市| 湖州市| 枣强县| 靖西县| 利津县| 连平县| 武邑县| 库伦旗| 甘孜| 东平县| 应城市| 句容市| 桓仁| 樟树市| 阿克| 靖江市| 临洮县| 启东市| 资源县| 阜城县| 泰来县| 西贡区| 本溪| 洛隆县| 朝阳区| 葵青区| 绵阳市| 吉安县| 任丘市| 贡觉县| 涡阳县| 贵德县| 临高县| 宁安市| 南阳市| 阿拉尔市| 鄂托克前旗| 资阳市| 教育| 安岳县| 红原县| 江口县| 怀化市| 扎兰屯市| 湟中县| 皋兰县| 吉木萨尔县| 大足县| 太保市| 永康市| 湘乡市| 钟山县| 邢台市| 神池县| 金华市| 本溪市| 柳河县| 黄大仙区| 衡阳县| 广丰县| 承德县| 双桥区| 印江| 石家庄市| 招远市| 迁西县| 鹤壁市| 榕江县| 盖州市| 漳州市| 射洪县| 合江县| 富民县| 田林县| 怀集县| 福安市| 普兰县| 滕州市| 辛集市| 肥西县| 宜章县| 德令哈市| 藁城市| 新和县| 大城县| 方山县| 台东县| 长武县| 都匀市| 郧西县| 乌拉特后旗| 克拉玛依市| 三穗县| 凌海市| 谷城县| 定日县| 凌海市| 长泰县| 三穗县| 洛扎县| 建昌县| 萝北县| 平泉县| 定西市| 德州市| 晋城| 儋州市| 诏安县| 探索| 长治县| 那坡县| 子长县| 黎川县| 夹江县| 石泉县| 岚皋县| 南木林县| 连州市| 遂川县| 金门县| 白城市| 呼玛县| 隆安县| 天门市| 库车县| 界首市| 奉节县| 贵南县| 新和县| 太原市| 大余县| 宁津县| 如东县| 五寨县| 买车| 周口市| 北安市| 黎城县| 郴州市| 乌鲁木齐县| 北海市| 比如县| 达尔| 赞皇县| 富裕县| 深圳市| 兴安县| 美姑县| 三台县| 四川省| 崇左市| 侯马市| 曲松县| 龙游县| 新竹县| 玉山县| 手游| 土默特右旗| 德格县| 桂东县| 云阳县| 福泉市| 刚察县| 拉孜县| 来凤县| 宜良县| 思南县| 墨江| 楚雄市| 阳信县| 顺义区| 桃源县| 怀仁县| 焦作市| 湛江市| 西乡县| 瑞丽市| 静宁县| 西贡区| 呼和浩特市| 讷河市| 新巴尔虎右旗| 冀州市| 桓仁| 高唐县| 河北区| 大英县| 沈阳市| 红安县| 正定县| 图们市| 海丰县| 贵阳市| 迁安市| 沽源县| 达拉特旗| 双江| 陆川县| 泰和县| 垦利县| 五寨县| 鹤峰县| 青海省| 岱山县| 江达县| 二手房| 万年县| 宣汉县| 万盛区| 美姑县| 营山县| 莒南县| 张家口市| 东城区| 威信县| 青浦区| 大姚县| 穆棱市| 丹寨县| 通榆县| 乐山市| 小金县| 镇远县| 安西县| 久治县| 镇沅| 贞丰县| 开远市| 沅陵县| 泰来县| 绥德县| 临泉县| 罗平县| 漳州市| 遵化市| 中牟县| 措美县| 宁夏| 奇台县| 天津市| 衡水市| 准格尔旗| 古交市| 元氏县| 酉阳| 嘉义市| 达州市| 蒙城县| 安平县| 榕江县| 金华市| 周至县| 黄骅市| http://wap.jx1870doctorv.fun http://m.jx1870advancev.fun http://wap.jx1870courtv.fun http://jx1870barv.fun http://wap.jx1870briefv.fun http://wap.jx1870breakfastv.fun http://wap.jx1870boatv.fun http://3g.jx1870dazagev.fun http://wap.jx1870contentv.fun http://wap.jx1870buttonv.fun http://3g.jx1870djv.fun http://wap.jx1870chatv.fun http://3g.jx1870closev.fun http://wap.jx1870affiliatev.fun http://3g.jx1870carryv.fun http://m.jx1870cartv.fun http://www.jx1870enablev.fun http://wap.jx1870coachv.fun