信息
- ID
- 1056
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 10
- 标签
- (无)
- 递交数
- 23
- 已通过
- 1
- 上传者
操作:选择一个整数i (2≤i≤n−1),若ai−1=ai+1,则可以将ai变为ai−1
可以想到a中所有元素最终都会变为a1和an(因为a1和an必定相等,所以后面都用a1代替)。
因为必须满足要求ai−1和ai+1相等时才能改变ai,所以只要有连续两个与a1不相等,这个数列就不再完美。
所以我们只要让两个与a1不相等的数挨在一起就行了。
可以储存每一个与a1不相等的数的下标,枚举他们直接的距离,其实就是需要删除的数的数量,取最小值。
另一种方法就是让a1和an不相等,因为无法对他们操作,对比这两组方法的最小值即可