news 2026/8/8 8:29:18

Kimi LeetCode 3836. 恰好 K 个下标对的最大得分 TypeScript实现

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Kimi LeetCode 3836. 恰好 K 个下标对的最大得分 TypeScript实现

以下是 LeetCode 3836. 恰好 K 个下标对的最大得分 的 TypeScript 实现。

解题思路

三维动态规划。定义 `dp[i][j][k]` 为:在 `nums1` 的前 `i` 个元素和 `nums2` 的前 `j` 个元素中,恰好选择 `k` 对下标所能获得的最大得分。

状态转移有三种情况:
1. 跳过 `nums1[i-1]`:`dp[i][j][k] = dp[i-1][j][k]`
2. 跳过 `nums2[j-1]`:`dp[i][j][k] = dp[i][j-1][k]`
3. 将 `nums1[i-1]` 与 `nums2[j-1]` 配对:`dp[i][j][k] = dp[i-1][j-1][k-1] + nums1[i-1] * nums2[j-1]`

取三者最大值。初始状态 `dp[0][0][0] = 0`,其余为负无穷。

---

TypeScript 代码

```typescript
function maxScore(nums1: number[], nums2: number[], k: number): number {
const n = nums1.length;
const m = nums2.length;
const K = k;
const NEG = -1e18; // 足够小的负无穷

// dp[i][j][k]: 前i个nums1和前j个nums2中选k对的最大得分
const dp: number[][][] = Array.from({ length: n + 1 }, () =>
Array.from({ length: m + 1 }, () => Array(K + 1).fill(NEG))
);
dp[0][0][0] = 0;

for (let i = 0; i <= n; i++) {
for (let j = 0; j <= m; j++) {
for (let kk = 0; kk <= K; kk++) {
// 不选 nums1[i-1]
if (i > 0) {
dp[i][j][kk] = Math.max(dp[i][j][kk], dp[i - 1][j][kk]);
}
// 不选 nums2[j-1]
if (j > 0) {
dp[i][j][kk] = Math.max(dp[i][j][kk], dp[i][j - 1][kk]);
}
// 将 nums1[i-1] 和 nums2[j-1] 配对
if (i > 0 && j > 0 && kk > 0) {
dp[i][j][kk] = Math.max(
dp[i][j][kk],
dp[i - 1][j - 1][kk - 1] + nums1[i - 1] * nums2[j - 1]
);
}
}
}
}

return dp[n][m][K];
}
```

---

关键注意点

要点 说明
返回值类型 TypeScript/JavaScript 的 `number` 为双精度浮点数,最大安全整数约为 `9 × 10^15`。本题最大得分约为 `100 × 10^6 × 10^6 = 10^14`,完全在安全整数范围内,无需额外处理。
负无穷取值 使用 `-1e18` 作为负无穷标记,既足够小又不会引发浮点精度问题。
三维数组初始化 使用 `Array.from` 嵌套创建三维数组,确保每一层都是独立的引用,避免共享数组导致的数据污染。
时间复杂度 `O(n × m × K)`,约 `10^6` 次运算,轻松通过。
空间复杂度 `O(n × m × K)`,约 `10^6` 个数字,内存占用约 830 MB。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/8 8:27:33

近视防控视角下 如何甄别护眼灯的真实护眼性能?

近视防控视角下 如何甄别护眼灯的真实护眼性能&#xff1f;我国儿童青少年近视防控始终是社会关注的民生议题&#xff0c;国家卫健委相关数据显示&#xff0c;全国儿童青少年总体近视率仍处于较高水平&#xff0c;小学阶段近视率攀升速度尤为值得关注。不少家长都有困惑&#x…

作者头像 李华
网站建设 2026/8/8 8:27:29

航空CAD 草图绘制模块 — 直线绘制智能捕捉

C17 / Qt6 实现 端点 / 圆心 / 交点 / 切点捕捉 切线几何 与画线交互同源本文档聚焦 sketch-cad-cpp&#xff08;C17 / Qt 6.10.1 / MinGW-w64 GCC 13.1.0&#xff09;本轮新增的「直线绘制智能捕捉」功能&#xff1a;画直线时&#xff0c;端点可吸附到五种几何特征点——直…

作者头像 李华
网站建设 2026/8/8 8:24:25

C语言基础:构造数据类型-结构体 memcpy系统函数

11、const修饰的指针const&#xff1a;只读。只允许被访问&#xff0c;不允许修改表示该变量只允许使用&#xff0c;不允许被修改&#xff0c;记得初始化const int num1const int *p; //同下int const *p; //修饰*p&#xff0c;*p的内容只读&#xff0c;*pnum &#xff0…

作者头像 李华
网站建设 2026/8/8 8:22:47

AI 观测站|AI 开始让传统运维解释不了问题

上一篇我讲了一个判断&#xff1a;传统可观测性&#xff0c;为什么越来越看不懂 AI&#xff1f;这篇继续往下讲一层。上一篇讲的是&#xff1a;观察对象变了。从系统状态&#xff0c;变成 AI 行为。这篇讲的是&#xff1a;传统运维的问题定位逻辑&#xff0c;也开始变了。传统运…

作者头像 李华
网站建设 2026/8/8 8:21:20

财务软件凭证录入规范:摘要怎么写、科目怎么选、附件怎么贴

【摘要】凭证录入是财务日常工作的基础&#xff0c;规范与否直接影响账务质量和审计合规。本文详解凭证录入的规范要求。1 凭证摘要的撰写规范摘要的作用&#xff1a;简明扼要说明经济业务的内容&#xff0c;便于日后查账和审计。撰写原则&#xff1a;简洁、准确、完整。避免模…

作者头像 李华
网站建设 2026/8/8 8:20:43

秒杀场景下基于Jackson流式解析与JVM内存管控的流量控制方案

秒杀场景下基于Jackson流式解析与JVM内存管控的流量控制方案 电商秒杀活动的核心痛点是瞬时高并发与库存一致性的平衡&#xff1a;以常规美妆秒杀为例&#xff0c;峰值QPS常达到50万~200万&#xff0c;其中60%以上的请求为无效请求&#xff0c;包括参数格式错误、商品ID不存在、…

作者头像 李华