有限自动机解法,O(N)复杂度,伪动态规划 具体思路如下: 首先对于超出边界的(小于等于0,大于n),可以直接归到边界。 记录每个数字出现的个数,采用有限状态机一次遍历可以得到答案 分为三个状态:初始状态,多余状态和缺少状态。设当前遍历为index,多余状态多余的数均为index-1;缺少状态缺少的数为index-1,index-2,...状态转移看代码,ans更新思路见4 在多余状态下,设此前多余了pre1个数字,则在遍历下一个数时,这pre1个数都需要加1,即ans += pre1;在缺少状态下,设此前缺少了pre2个数字,则将当前index的数全拿来补全缺少的数,从小补齐,即ans +...