Python 破解:计算 n*n 网格中只含 1 的最大矩形数字和!
以下是解决该问题的Python代码: ```python # 读取输入 n = int(input()) # 初始化二维网格 grid = [] for _ in range(n): row = list(map(int, input().split())) grid.append(row) # 最大矩形数字和初始化为0 max_sum = 0 # 遍历所有可能的矩形左上角和右下角坐标 for x1 in range(n): for y1 in range(n): for x2 in range(x1, n): for y2 in range(y1, n): # 标记当前矩形是否只包含1 valid = True current_sum = 0 # 检查当前矩形内的所有元素 for i in range(x1, x2 + 1): for j in range(y1, y2 + 1): if grid[i][j] == 0: valid = False break current_sum += grid[i][j] if not valid: break # 如果当前矩形只包含1,更新最大矩形数字和 if valid: max_sum = max(max_sum, current_sum) # 输出结果 print(max_sum) ``` 代码解释 1. 读取输入:首先读取整数`n`,表示二维网格的大小。然后逐行读取二维网格的元素,并将其存储在`grid`列表中。 2. 初始化最大矩形数字和:将最大矩形数字和`max_sum`初始化为0。 3. 遍历所有可能的矩形:使用四重循环遍历所有可能的矩形左上角和右下角坐标`(x1, y1)`和`(x2, y2)`。 4. 检查矩形是否只包含1:对于每个矩形,使用双重循环遍历矩形内的所有元素。如果发现元素为0,则标记该矩形不合法,并跳出循环。 5. 更新最大矩形数字和:如果当前矩形只包含1,则更新最大矩形数字和`max_sum`。 6. 输出结果:最后输出最大矩形数字和。 复杂度分析 - 时间复杂度:$O(n^6)$,因为需要使用四重循环遍历所有可能的矩形,并且对于每个矩形,需要使用双重循环检查矩形内的所有元素。 - 空间复杂度:$O(n^2)$,主要用于存储二维网格。 ######[AI问答 | 534点数解答 | 2026-02-07 20:24:57]
- Python 运行报错:urllib3 网络连接创建失败,原因及排查建议(字节豆包 | 161点数解答 | 2024-10-31 00:39:36)465
- C++ 实现:精准统计给定范围 [L, R] 内数字 2 出现的次数及代码详解(字节豆包 | 401点数解答 | 2026-02-05 21:17:05)42
- C++实现:统计[L, R]范围内数字2出现的次数及代码详解(字节豆包 | 489点数解答 | 2026-02-07 17:12:26)47
- 高考毕业晚会难题:从学生能力值求最大默契程度的Python解法(字节豆包 | 487点数解答 | 2026-01-24 13:10:18)42
- Python 实战:学生信息列表转字典、遍历、深拷贝及数据修改全流程(GPT | 422点数解答 | 2024-10-29 15:43:54)418
- Python实战:学生成绩列表转字典,深拷贝与数据修改操作全解析(字节豆包 | 254点数解答 | 2024-10-29 16:01:39)412
- Python:用正则表达式从含多种字符的字符串中提取英文、数字和中文单词(GPT | 522点数解答 | 2024-05-31 19:05:27)317
- Python:用正则表达式结合 split 思路提取一行字符串中的英文、数字和中文单词 (GPT | 399点数解答 | 2024-05-31 19:07:31)313
- 繁体字编码代码修改:人物名字合法性验证函数转简体版(字节豆包 | 325点数解答 | 2024-10-21 18:57:01)287
- 计算区间 n 到 m 中数字 x 出现次数的 Python 实现与详解(字节豆包 | 289点数解答 | 2025-12-07 17:14:59)76
- Python 实现:计算区间 n 到 m 中数字 x 出现的次数(字节豆包 | 322点数解答 | 2025-12-13 21:37:08)78
- Java 简单工厂模式:打造可扩展的几何图形绘图工具类(阿里通义 | 570点数解答 | 2024-11-30 14:40:37)157