题目:
思路:
因为只有-1的操作,则我们分别枚举对奇数位进行操作和对偶数位进行操作的情况
res[0]记录偶数位操作数,res[1]记录奇数位操作数
对每一位记录left和right,如果越界则值即为无穷大
则该位要减的数为a[i]-min(l,r),为了避免负数,则max(0,a[i]-min(l,r))
最后min(res[0],res[1])
class Solution {
public int movesToMakeZigzag(int[] a) {
int n=a.length;
int[] res=new int[2];
for(int i=0;i<n;i++)
{
int l= i>0? a[i-1]:0x3f3f3f3f;
int r= i<n-1? a[i+1]:0x3f3f3f3f;
res[i%2]+=Math.max(0,a[i]-Math.min(l,r)+1);
}
return Math.min(res[0],res[1]);
}
}