You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求移除k个连续元素消除数组的最小插入次数算法

数组消除最小插入次数问题求解

问题描述

给定一个长度为n的数组和数值k,目标是找到最少插入次数,满足以下规则:

  • 可插入任意数值的元素
  • 当连续相同元素的数量≥k时,可选择移除这组连续元素
  • 移除后,前后的元素会拼接在一起,可继续进行移除操作
  • 最终需要完全消除整个数组,可选择最优的移除时机

输入格式

  • 第一行:空格分隔的n和k
  • 第二行:数组元素
  • 第三行:预期输出

测试用例

Test Case 1

2 5
1 1
3

解释:插入3个1,形成5个连续1后移除,总插入次数为3。

Test Case 2

5 3
2 2 3 2 2
2

解释:最优方案是在中间的3后插入2个3,先移除这组3(共3个),剩余的4个2自动连续,可直接移除,总插入次数为2。若先处理2的话需要插入4个元素,成本更高。

Test Case 3

10 4
3 3 3 3 2 3 1 1 1 3
4

解释:插入3个元素(2个2、1个1)消除中间的2和1段,剩余的3会拼接成连续的组,可自动移除,总插入次数为4。

我的尝试

我尝试过用贪心栈的方法,但没有成功,目前找不到可行的解题思路。作为DSA新手,希望能得到这个问题的可行算法思路或者相关的解题方向指导。

内容的提问来源于stack exchange,提问作者Ragul Shanmugarajan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 11:12:38