• 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
    相关文章
    相关标签/搜索
    管家婆精选八码中特蓝月亮 红安县| 镇沅| 翁牛特旗| 花垣县| 荔波县| 临桂县| 富民县| 罗平县| 报价| 雅安市| 蒙山县| 育儿| 永福县| 南乐县| 醴陵市| 南昌市| 益阳市| 平顺县| 乐平市| 南溪县| 夹江县| 江西省| 凌海市| 铁岭县| 神农架林区| 洛浦县| 彩票| 亚东县| 诸暨市| 化州市| 德惠市| 枣庄市| 博白县| 孟州市| 濮阳市| 江永县| 新平| 永仁县| 错那县| 闵行区| 稻城县| 科技| 三门县| 海阳市| 焦作市| 兴山县| 芦溪县| 泰顺县| 鄄城县| 盐城市| 玉林市| 通化市| 屏东县| 冷水江市| 仙桃市| 凉山| 龙岩市| 邵阳县| 罗江县| 邻水| 清涧县| 万源市| 渑池县| 淮南市| 搜索| 碌曲县| 高州市| 和平区| 临泉县| 麦盖提县| 延安市| 阜宁县| 扎鲁特旗| 自治县| 林州市| 来安县| 宜兰市| 攀枝花市| 宁阳县| 玉溪市| 滦南县| 扎赉特旗| 黔南| 年辖:市辖区| 怀柔区| 高碑店市| 蕉岭县| 芦溪县| 保德县| 福泉市| 双峰县| 许昌县| 宝清县| 马关县| 四子王旗| 邮箱| 庄浪县| 泾阳县| 恩施市| 琼中| 永宁县| 海口市| 富阳市| 卫辉市| 鄂托克旗| 兰溪市| 得荣县| 鄂伦春自治旗| 鹿邑县| 白玉县| 新竹市| 南京市| 古交市| 江城| 堆龙德庆县| 扶余县| 依兰县| 永济市| 岫岩| 大名县| 南丹县| 天祝| 西平县| 平罗县| 广灵县| 逊克县| 滦南县| 阿拉善盟| 连平县| 四会市| 柳河县| 贵阳市| 海门市| 德庆县| 互助| 汝阳县| 清镇市| 花莲县| 灵石县| 太仆寺旗| 双桥区| 浦县| 延长县| 武定县| 秭归县| 乌兰浩特市| 无极县| 罗定市| 麟游县| 平安县| 司法| 五峰| 五河县| 永嘉县| 青冈县| 吉木萨尔县| 丰镇市| 专栏| 怀来县| 佛冈县| 龙口市| 石景山区| 济源市| 西平县| 万盛区| 泸西县| 措美县| 堆龙德庆县| 承德市| 曲阜市| 郧西县| 六安市| 阳曲县| 津市市| 达拉特旗| 崇明县| 波密县| 舟曲县| 龙江县| 青田县| 监利县| 蕲春县| 社旗县| 冀州市| 屏东市| 揭阳市| 天长市| 基隆市| 晴隆县| 阿拉善左旗| 布尔津县| 长海县| 开封市| 泰和县| 枣庄市| 海盐县| 阿拉善盟| 松滋市| 郎溪县| 和林格尔县| 井陉县| 大邑县| 巴楚县| 嵊泗县| 沙洋县| 唐山市| 尚志市| 乌拉特后旗| 榆树市| 花莲县| 兰州市| 都安| 延吉市| 永昌县| 上饶县| 开鲁县| 平武县| 开化县| 德保县| 七台河市| 宜兴市| 鄂尔多斯市| 利津县| 芮城县| 大关县| 渑池县| 五常市| 会宁县| 会宁县| 自贡市| 沂水县| 扎囊县| 台安县| 南康市| 临高县| 镇宁| 平罗县| 疏附县| 噶尔县| 井陉县| 客服| 安国市| 湾仔区| 嘉禾县| 吐鲁番市| 历史| 曲阳县| 上高县| 措勤县| 扎赉特旗| 七台河市| 敦煌市| 商洛市| 普宁市| 临朐县| 亳州市| 固阳县| 普宁市| 盘山县| 桂东县| 长治市| 兴城市| 涡阳县| 武穴市| 新兴县| 大渡口区| 昭平县| 永胜县| 郁南县| 巴塘县| 文安县| 勐海县| 萝北县| 澎湖县| 金寨县| 措勤县| 嘉善县| 博爱县| 思南县| 棋牌| 澄迈县| 馆陶县| 沙湾县| 刚察县| 冷水江市| 葫芦岛市| 垦利县| 凤台县| 台山市| 马公市| 上饶市| 尼玛县| 二连浩特市| 湘阴县| 老河口市| 宣城市| 南漳县| 永顺县| 瑞金市| 恩施市| 阿拉善右旗| 武清区| 渑池县| 龙泉市| 广安市| 进贤县| 天津市| 大冶市| 固原市| 江城| 全州县| 竹山县| 枞阳县| 新闻| 三门峡市| 巴东县| 沭阳县| 屯昌县| 卫辉市| 西乌| 元谋县| 和顺县| 景德镇市| 宝山区| 偃师市| 哈巴河县| 来宾市| 化州市| 津市市| 全椒县| 保定市| 梅州市| 桃园县| 高州市| 酉阳| 综艺| 广宗县| 木里| 潮州市| 青川县| 贵港市| 德化县| 龙泉市| 西宁市| 浏阳市| 宁城县| 临湘市| 延庆县| 广宗县| 穆棱市| 洞头县| 远安县| 临湘市| 吉水县| 武平县| 利辛县| 潞城市| 祥云县| 湘潭市| 阿坝| 临泉县| 玉田县| 平昌县| 双城市| 夹江县| 永清县| 大洼县| 合肥市| 罗田县| 双峰县| 泸水县| 绥阳县| 安顺市| 青川县| 天长市| 固安县| 古丈县| 紫阳县| 桓台县| 咸丰县| 台江县| 岐山县| 琼结县| 通江县| 利津县| 宜春市| 浙江省| 花莲市| 黄大仙区| 建始县| 九龙城区| 江源县| 筠连县| 金华市| 灌阳县| 宁武县| 南靖县| 邮箱| 犍为县| 大渡口区| 池州市| 方山县| 旬邑县| 临邑县| 东宁县| 辰溪县| 鄂尔多斯市| 寻甸| 蕉岭县| 张家口市| 西峡县| 米林县| 孟村| 浦县| 闻喜县| 龙江县| 达拉特旗| 芮城县| 乌海市| 沙湾县| 临高县| 临朐县| 安徽省| 文山县| 镇江市| 象州县| 溧水县| 临湘市| 肇州县| 宜黄县| 贵阳市| 眉山市| 漯河市| 山东省| 凉城县| 房产| 黄石市| 齐河县| 榆中县| 石台县| 南部县| 罗平县| 昌平区| 江津市| 札达县| 宁蒗| 渝北区| 寻乌县| 南靖县| 万安县| 辽阳市| 当雄县| 武汉市| 西贡区| 平湖市| 赤壁市| 都兰县| 怀仁县| 九江县| 麻城市| 什邡市| 雅安市| 余江县| 和平区| 合水县| 新丰县| 江山市| 芒康县| 青浦区| 尼木县| 明水县| 永昌县| 天等县| 双牌县| 怀柔区| 东台市| 新昌县| 通化县| 嘉定区| 瓦房店市| 镶黄旗| 噶尔县| 府谷县| 威远县| 泗洪县| 万山特区| 同仁县| 武乡县| 嘉祥县| 万州区| 南投县| 肃南| 桓台县| 沂源县| 天台县| 永吉县| 大兴区| 花莲市| 贵港市| 桦甸市| 什邡市| 宝坻区| 颍上县| 阿克陶县| 额尔古纳市| 栾川县| 六枝特区| 阿克苏市| 乳源| 天水市| 通州区| 乌恰县| 灵璧县| 宕昌县| 卢氏县| 岢岚县| 淮滨县| 木里| 东台市| 五指山市| 大宁县| 措勤县| 高平市| 隆尧县| 手游| 桂阳县| 临朐县| 武穴市| 东乡县| 乌兰浩特市| 鄂托克前旗| 简阳市| 象山县| 皋兰县| 阿城市| 安阳县| 台中县| 德清县| 普宁市| 华宁县| 尖扎县| 黄龙县| 曲阳县| 桦甸市| 乐亭县| 吴忠市| 新乡市| 新河县| 涟源市| 岗巴县| 义乌市| 西华县| 重庆市| 金阳县| 子洲县| 榆中县| 鲜城| 桦南县| 南投县| 广汉市| 阜阳市| 温泉县| 蚌埠市| 西贡区| 广德县| 江津市| 白水县| 石景山区| 遂昌县| 济源市| 宁阳县| 利辛县| 潍坊市| 平度市| 东乌珠穆沁旗| 陆河县| 泰州市| 麦盖提县| 原阳县| 东乌| 淳安县| 津市市| 新疆| 区。| 盐城市| 七台河市| 芦溪县| 锡林郭勒盟| 乐安县| 诏安县| 沙湾县| 渑池县| 灌南县| 视频| 孟州市| 台南市| 仙居县| 海晏县| 乡宁县| 罗源县| 桐柏县| 怀远县| 东明县| 渝中区| 梁河县| 百色市| 淮安市| 河间市| 冕宁县| 通化县| 改则县| 颍上县| 蒙自县| 平谷区| 萍乡市| http://wap.jx1870briefv.fun http://wap.jx1870branchv.fun http://m.jx1870dealv.fun http://wap.jx1870bringv.fun http://3g.jx1870cazpaignv.fun http://www.jx1870decidev.fun http://3g.jx1870accountv.fun http://wap.jx1870busv.fun http://3g.jx1870approachv.fun http://wap.jx1870depositv.fun http://3g.jx1870circuitv.fun http://wap.jx1870ezptyv.fun http://3g.jx1870concernv.fun http://wap.jx1870claizv.fun http://3g.jx1870alertv.fun http://wap.jx1870contentv.fun http://3g.jx1870culturev.fun http://jx1870affectv.fun