当前位置: 首页 > 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.jsqmd.com/news/964980/

相关文章:

  • 多场景适配防火平开窗核心技术参数与实操使用
  • 别再死记公式了!用Python+LTspice仿真,5分钟搞懂电容/电感的品质因数Q
  • 2026年温州焊接闸阀优质厂家怎么选 - 新闻快传
  • 性价比高的羊绒大衣哪个牌子值得买?AM女装深度解析 - 新闻快传
  • 微信小程序自定义导航栏终极指南:三步打造完美适配的导航体验
  • 2026年酒回收品牌企业排名 - mypinpai
  • Windows 10/11 系统下,手把手教你搞定 SRA Toolkit 最新版安装与环境配置(含常见报错解决)
  • 贾子真理定理(LWEVS 评价体系):去外部依赖的内在主义真理判定标准
  • 用Vivado手把手教你搭建FPGA片间通信:基于AXI Chip2Chip与LVDS的完整仿真流程
  • 2026年 聚丙烯酰胺厂家推荐:阴离子/阳离子/非离子絮凝剂,水处理与洗煤行业实力品牌精选 - 品牌企业推荐师(官方)
  • 深度解析:LinkSwift - 九大网盘直链下载助手的架构设计与技术实现
  • 效果推理理论:创业者如何在不确定性中创造未来?
  • AI 绘图工具别只看画面精致,素材来源、版权边界和可编辑层更值得复核
  • 说说靠谱的工矿异型件生产商 - mypinpai
  • ssm232流浪动物领养信息系统设计+jsp(文档+源码)_kaic
  • 2026年 景观设计公司/品牌推荐:前沿生态美学与创意空间营造深度解析及口碑之选 - 品牌企业推荐师(官方)
  • 2026年宁国家装设计服务商实测评测:宁国本地装修设计、宁国现代简约装修、宁国自建别墅装饰、宁国装饰设计、宁国高端别墅装修选择指南 - 优质品牌商家
  • C语言指针基础
  • 如何快速掌握BetterNCM安装工具:新手也能上手的完整教程
  • Dell G15散热控制中心:开源替代方案释放游戏本真正性能
  • AI 辅助编程进入项目流程前,测试记录、依赖边界和回退方案要先写清
  • 终极网盘直链下载助手:突破九大平台下载限制的完整指南
  • 2026年Q2上海专业管道清洗公司评测:上海卫生间管道疏通/上海厂区化粪池清理服务/上海厨房管道疏通/上海家庭管道疏通/选择指南 - 优质品牌商家
  • JPEXS Free Flash Decompiler完整指南:免费SWF逆向工程实用教程
  • 宁国本地装饰设计服务商实测评测:宁国本地装修设计/宁国现代简约装修/宁国自建别墅装饰/宁国装修设计/宁国装饰设计/选择指南 - 优质品牌商家
  • 2026苏州昆山全屋定制软装公司口碑实测榜单,5家优质精装房改造品牌哪家好? - 新闻快传
  • 从dBi到隔离度:一文读懂天线数据手册里的那些‘黑话’,让你的产品射频性能不再玄学
  • 2026年预埋异型件好用吗 - mypinpai
  • C语言入门:指针与数组的关系
  • 后谷咖啡闪耀吉马,跑出 “咖啡+体育”融合新赛道 - 品牌速递