尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

DeepSeek LeetCode 3276. 选择矩阵中单元格的最大得分 Java实现

DeepSeek    LeetCode 3276. 选择矩阵中单元格的最大得分 Java实现
📅 发布时间:2026/6/26 6:20:05

这道题是 LeetCode 3276,可以用状态压缩动态规划 (状压DP) 来解决。

核心思路

题目有两个核心限制:

1. 每行最多选一个:因为行数 n <= 10,可以用一个二进制整数(位掩码)表示哪些行已被占用。
2. 选中的值必须互不相同:可以从大到小考虑每个可能的数值(1 到 100),决定是否选择它。

状态定义与转移

· 状态定义:dp[i][mask] 表示处理完数值 i 到 100 后,已占用行状态为 mask 时能获得的最大得分。
· 初始状态:dp[101][mask] = 0(没有数值可选了)。
· 状态转移:对于数值 i,有两种选择:
1. 跳过:dp[i][mask] = dp[i+1][mask]
2. 选择:如果某行 r 未被占用且包含数值 i,则可以选它:dp[i][mask] = max(dp[i][mask], dp[i+1][mask | (1 << r)] + i)
· 最终答案:dp[1][0](所有行都未被占用)。

Java 代码实现

```java
class Solution {
public int maxScore(List<List<Integer>> grid) {
int n = grid.size();
// 1. 预处理:记录每一行包含了哪些数字
// 数字范围是 1 到 100
boolean[][] has = new boolean[n][101];
for (int i = 0; i < n; i++) {
for (int v : grid.get(i)) {
has[i][v] = true;
}
}

// 2. 动态规划
// dp[i][mask]: 处理完数值 i..100,已选行状态为 mask 的最大得分
int[][] dp = new int[102][1 << n];

// 从大到小遍历所有可能的数值
for (int i = 100; i >= 1; i--) {
for (int mask = 0; mask < (1 << n); mask++) {
// 情况1: 不选择数字 i
dp[i][mask] = dp[i + 1][mask];

// 情况2: 选择数字 i,枚举它可以被安放在哪一行
for (int r = 0; r < n; r++) {
// 行 r 未被占用 且 行 r 包含数字 i
if ((mask & (1 << r)) == 0 && has[r][i]) {
int newMask = mask | (1 << r);
dp[i][mask] = Math.max(dp[i][mask], dp[i + 1][newMask] + i);
}
}
}
}

// 从数字1开始,初始没有任何行被占用
return dp[1][0];
}
}
```

复杂度分析

· 时间复杂度: O(100 * 2^n * n),其中 n 是矩阵行数(n <= 10),因此效率很高。
· 空间复杂度: O(100 * 2^n)。

其他解法思路

· 回溯 + 剪枝:对每行去重排序,递归尝试选或不选,通过剪枝优化。
· 贪心 + TreeMap:从大到小处理数值,用 TreeMap 记录每个值出现在哪些行,用回溯处理冲突。

上述状态压缩DP是这道题比较标准的解法,逻辑清晰且易于实现。

相关新闻

  • 免费AI视频放大神器Video2X:如何三步将低清视频无损升级到4K超高清
  • 济宁装修公司哪家靠谱、哪家专业?2026 十强口碑装企实测推荐 - 装修新知
  • 2026年生物领域808nm激光器厂家有哪些亮点,带你一探究竟!

最新新闻

  • Claude Tag 进 Slack 后,技术团队先设计权限和日志
  • 爬虫监控告警体系建设:Prometheus + Grafana实战
  • PYTHON+AI LLM DAY EIGHTY-SEVEN
  • 大路灯哪个品牌好?好用靠谱的护眼大路灯推荐,不踩雷选购秘籍
  • 前沿技术借鉴研讨-2026.6.25(低生育/孕产妇心血管疾病)
  • SQL注入绕过WAF实战:从原理到Payload构造的完整对抗指南

日新闻

  • Qwen2.5-Turbo百万上下文实战指南:百炼平台长文本处理全解析
  • 怎么监控对标账号更新,2026年作者监控工作流,5款深度对比
  • EdgeRemover:专业级Windows Edge浏览器管理工具,彻底解决顽固软件卸载难题

周新闻

  • Visual C++运行库修复终极指南:5分钟快速解决Windows软件启动错误
  • 手把手教你构建统计局地区经济数据爬虫:从环境搭建到数据持久化全指南
  • 2026多Agent深度解析:用AI团队替代单一模型,四种架构实战落地

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号