考虑预处理出连续区间,我们只能使用至多一次翻倍操作。
这里的连续区间是指,这个区间内的数从小到大排序后,相邻元素的差至多为 2。
考虑每两个相邻的连续区间是否可以连在一块,如果可以则更新答案。
注意一个边界情况:区间 [3, 5]
和 [7, 100]
小红有n颗糖果,每颗糖果的编号为ai。小红给自己定下的目标是,第x天必须吃编号为x的糖果。现在小红有一个魔法,可以选择一颗糖果,将其编号翻倍。小红最多只能释放一次魔法。她希望自己连续尽可能多的天数都能吃到糖果,请你求出最多的连续天数。
第一行输入一个正整数n,代表糖果数量。 第二行输入n个正整数ai,代表每个糖果的编号。
1≤n≤105
1≤ai≤109
一个正整数,代表最多能吃到糖果的连续天数。
输入
4
1 1 3 5
输出
3
说明
选择第一个糖果,将其编号变成 2,那么第 1、2、3 天都能吃到糖果,最多连续3天。
输入
5
4 2 5 3 6
输出
5
说明
不需要使用魔法,从第 2 天到第 6天都可以吃到糖果。