题目链接:点击查看 题目大意:给出 n 个数,现在可执行的操作是: 找到相邻且数值相等的两个数,即 abs( i – j ) == 1 && a[ i ] == a[ j ] 使得两个数合并为一个数,且数值变为 a[ i ] + 1 问如何操作,能使得最终数列的长度最短 题目分析:最优性问题,且是对区间操作的,而且数据范围满足 n^3 的时间复杂度,综上可以考虑区间dp,因为题目已经明确了需要求什么,所以我们不妨设 dp[ i ][ j ] 为区间 [ i , j ] 合并后的最短数列的长度,因为题目中的合并放到数组中不太好实现,我们等加成区间赋值就可以了,如果遇到需要将区间 [ i , k