当前位置: 首页 > news >正文

DeepSeek LeetCode 3989. 网格中保持一致的最大列数 Python3实现

题目简述

3989. 网格中保持一致的最大列数:给定 m x n 网格 grid 和整数 limit,删除若干列后(至少保留一列),若每一行中任意相邻保留列的绝对值差都不超过 limit,则称该网格为一致的。求能保留的最大列数。

约束:m, n ≤ 250,允许 O(n²·m) 的动态规划。

---

核心思路:最长兼容子序列(LIS 变种)

· 兼容性:第 i 列与第 j 列(i < j)可相邻保留,当且仅当所有行上 |grid[row][j] - grid[row][i]| ≤ limit。
· DP 定义:dp[j] 表示以第 j 列结尾的最长保留列数。
· 转移:dp[j] = max(dp[j], dp[i] + 1),其中 i < j 且 i 与 j 兼容。
· 答案:max(dp)。

---

Python3 实现

```python
from typing import List

class Solution:
def maxConsistentColumns(self, grid: List[List[int]], limit: int) -> int:
m = len(grid)
n = len(grid[0])

# dp[j] = 以第 j 列结尾的最长保留列数
dp = [1] * n
ans = 1

for j in range(n):
for i in range(j):
# 检查列 i 和列 j 是否兼容
compatible = True
for row in range(m):
if abs(grid[row][j] - grid[row][i]) > limit:
compatible = False
break
if compatible:
dp[j] = max(dp[j], dp[i] + 1)
ans = max(ans, dp[j])

return ans
```

---

复杂度分析

指标 复杂度
时间复杂度 O(n²·m),最坏约 250² × 250 = 1562.5 万次比较,Python 可轻松通过
空间复杂度 O(n),仅一维 DP 数组

---

示例验证

示例 1
grid = [[-2,0,3]], limit = 2

· 列 0 与 1 兼容(差 2),列 1 与 2 不兼容(差 3),列 0 与 2 不兼容(差 5)
· 最优保留 [0,1] → 答案 2

示例 2
grid = [[1,-1,1],[2,2,2]], limit = 1

· 列 0 与 2 兼容(两行差均为 0)
· 最优保留 [0,2] → 答案 2

示例 3
grid = [[-5,5]], limit = 9

· 两列差值 10 > 9,不能同时保留,只能保留一列 → 答案 1

http://www.jsqmd.com/news/1305340/

相关文章:

  • Spring Boot集成MinIO:构建高性能自托管对象存储服务的实践指南
  • 终极直播操作可视化指南:Input Overlay让观众看清你的每一个按键
  • Kimi K3模型通过Perplexity平台集成:长文本处理API实战指南
  • 江苏白蚁防治服务怎么选?2026年本地口碑企业参考与避坑指南 - 优质品牌商家
  • 月薪 5 千 vs 月薪 2 万,差距不只是工资
  • 三轮两驱智能车底盘安装与调试避坑指南
  • linux编译sdk时绕过报错的四种方式(自用
  • 芯片验证中的形式化方法:原理与实践
  • SpringBoot+Vue企业级办公系统架构与实现
  • LED数码管引脚识别与检测全攻略:从原理到实战四步法
  • 嵌入式通信三大总线协议:UART、SPI、I2C核心原理与实战选型指南
  • 你还在手动对齐?AI扁平化生成中的像素级锚点控制术(含CSS-in-JS实时渲染调试器开源)
  • 如何快速提取短视频的背景音乐?短视频BGM提取的技术原理与实践
  • Android系统UI控制新方案:WindowInsetsControllerCompat详解与实践
  • BilibiliDown终极指南:3步掌握B站视频下载与音频提取
  • Voronoi图:空间划分的数学之美与多领域应用实践
  • Unity动画回调实战:精准监听Animator状态开始与结束的3种方案
  • STM32模拟看门狗实战:从寄存器配置到多通道监控避坑指南
  • 2026 年淮滨比较好的无缝圆管供应厂家哪家可靠,你家装修还在踩弯管漏水的坑?这玩意儿帮你避了十几年的麻烦 - 企业推荐官【认证】
  • 语音信号分析:从时域波形到频域语谱图的原理与Python实践
  • 研究 Prompt 的这段时间:核心是界定边界,不是堆砌信息
  • 清华大学李升波教授在WAIC创新发展论坛主题报告介绍物理原生智能Phi:破解泛在具身智能的技术范式
  • 终极指南:5步掌握NativeOverleaf离线LaTeX编辑器,告别网络依赖
  • 在Android手机运行IntelliJ IDEA:Termux+Proot+Termux-X11完整指南
  • Python字符串转浮点数错误解析与数据清洗实战指南
  • 终极LRC歌词批量下载指南:5分钟解决离线音乐库歌词同步难题
  • RS485通讯模块组态实战:从硬件连接到系统集成
  • 24V工业电源设计实战:开关降压与线性稳压选型指南
  • 九号N70c 2025电轻摩:智能助力系统与续航优化全解析
  • 如何实现TikTok Shop自动化上架自动化?C++底层指纹伪装,抹除自动化特征