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

Kimi k2.6 LeetCode 3041. 修改数组后最大化数组中的连续元素数目 JavaScript实现

这道题的核心思路是 排序 + 动态规划。

思路分析

1. 排序:先将数组排序,方便处理连续关系。

2. 动态规划:设 `dp[v]` 表示以值 `v` 结尾的最长连续序列长度。对于每个元素 `x`:
- 不变:值为 `x`,需要前面有以 `x-1` 结尾的序列 → `dp[x] = dp[x-1] + 1`
- +1:值为 `x+1`,需要前面有以 `x` 结尾的序列 → `dp[x+1] = dp[x] + 1`

3. 处理顺序:排序后按顺序处理,对于重复元素,后处理的可以基于前面已更新的状态。

JavaScript 实现

```javascript
/**
* @param {number[]} nums
* @return {number}
*/
var maxSelectedElements = function(nums) {
// 排序
nums.sort((a, b) => a - b);

// dp[v] 表示以值 v 结尾的最长连续序列长度
// 使用 Map 存储,因为值域较大但有效状态有限
const dp = new Map();
let res = 0;

for (const x of nums) {
// 选项1:x 不变,以 x 结尾
const len1 = (dp.get(x - 1) || 0) + 1;

// 选项2:x + 1,以 x+1 结尾
// 注意这里 dp.get(x) 可能已经被当前轮次前面相同元素更新过
const len2 = (dp.get(x) || 0) + 1;

// 更新 dp[x](不变的情况)
dp.set(x, Math.max(dp.get(x) || 0, len1));

// 更新 dp[x+1](+1 的情况)
dp.set(x + 1, Math.max(dp.get(x + 1) || 0, len2));

// 更新答案
res = Math.max(res, dp.get(x), dp.get(x + 1));
}

return res;
};
```

验证示例

示例 1:`nums = [2,1,5,1,1]`
- 排序后:`[1,1,1,2,5]`
- 处理 `1`:`dp[1]=1`, `dp[2]=1`, `res=1`
- 处理第二个 `1`:`dp[1]=1`, `dp[2]=max(1, 1+1)=2`, `res=2`
- 处理第三个 `1`:`dp[1]=1`, `dp[2]=max(2, 1+1)=2`, `res=2`
- 处理 `2`:`dp[2]=max(2, dp[1]+1=2)=2`, `dp[3]=dp[2]+1=3`, `res=3`
- 处理 `5`:`dp[5]=1`, `dp[6]=1`, `res=3`
- 结果:`3` ✓

示例 2:`nums = [1,4,7,10]`
- 排序后:`[1,4,7,10]`
- 各元素互不相邻,每个只能单独成序列
- 结果:`1` ✓

复杂度分析

- 时间复杂度:O(n \log n)。排序 O(n \log n),DP 遍历 O(n)。
- 空间复杂度:O(n)。Map 存储 DP 状态,最多 2n 个键。

http://www.gsyq.cn/news/1476711.html

相关文章:

  • 遗产继承纠纷律师价格大揭秘 - myqiye
  • AI 搜索工具别只看答案完整度,来源层级、时间戳和复核记录更关键
  • 微信小程序自定义导航栏终极指南:三步打造完美适配的导航体验
  • Windows 10/11 系统下,手把手教你搞定 SRA Toolkit 最新版安装与环境配置(含常见报错解决)
  • 2026年酒回收品牌企业排名 - mypinpai
  • 2026年温州焊接闸阀优质厂家怎么选 - 新闻快传
  • 深度解析:LinkSwift - 九大网盘直链下载助手的架构设计与技术实现
  • C语言指针基础
  • AI 辅助编程进入项目流程前,测试记录、依赖边界和回退方案要先写清
  • 【MATLAB】无人机自适应姿态抗扰控制算法仿真研究
  • 线上服务器日常运维工作流程(企业真实运维手册)
  • 备战英语四级计划,豆包和千问的计划能相差多少 GXUST AI通识课
  • 【数据库系统原理】第2篇:数据模型抽象:从现实世界到机器世界的三层映射
  • 2026年更新指南:兰州合同纠纷律师怎么选择?聚焦性价比与专业度分析 - 2026年企业资讯
  • 新手必看:下载claudecode后,用快马平台十分钟创建首个网页
  • 2026年当下,如何为宝宝挑选诺优能奶粉厂家直供的可靠渠道? - 2026年企业资讯
  • 如何高效实现网盘免客户端下载:开源直链助手完全指南
  • 传统行业高管适合读EMBA吗?适配价值与优质项目全解析
  • 2026年 斜楼扶正厂家推荐:危房纠偏/地基加固/房屋平移专业公司深度解析 - 品牌企业推荐师(官方)
  • 2026年 彩钢瓦厂家推荐:屋顶、隔热、防腐、全新升级镀铝锌彩钢瓦公司深度盘点 - 品牌企业推荐师(官方)
  • 2026年氟碳铝单板厂家推荐:氟碳铝单板幕墙/造型天花/车间厂房铝单板品牌实力与经典案例深度解析 - 品牌企业推荐师(官方)
  • 2026年新消息:洞察行业知名的精益线企业,把握柔性制造新机遇 - 2026年企业资讯
  • 跟着 MDN 学JavaScript day_4:如何存储你需要的信息——变量
  • 超深度测评!北京靠谱黄金回收门店单出炉 - 新闻快传
  • 基于归一化流与Transformer的COVID-19预测模型
  • 2026年当下,武汉海绵门封供应商选哪家?服务商深度解析与选择指南 - 2026年企业资讯
  • 湛江代办许可证咨询指南:湛江社保公积金代办、/湛江财税政策解读/湛江财税服务/湛江一般纳税人记账怎么做/湛江代办许可证咨询电话多少/选择指南 - 优质品牌商家
  • 2026年Q2岩棉板厂家技术选型实测与合规指南:成都夹芯岩棉板、成都岩棉保温板、成都岩棉复合板、成都岩棉板价格选择指南 - 优质品牌商家
  • 杭州健身连锁店做GEO应该怎么选服务商?靠谱GEO服务商公司推荐? - 新闻快传
  • 天津老药丸回收首选!本草拾光,专业+上门双保障 - 深鉴新闻