加盟网站建设服务,网站建设关键的问题是,杭州网站建设faxide,seo站给你一个整数数组 nums#xff0c;每次 操作 会从中选择一个元素并 将该元素的值减少 1。
如果符合下列情况之一#xff0c;则数组 A 就是 锯齿数组#xff1a;
每个偶数索引对应的元素都大于相邻的元素#xff0c;即 A[0] A[1] A[2] A[3] A[4] …给你一个整数数组 nums每次 操作 会从中选择一个元素并 将该元素的值减少 1。
如果符合下列情况之一则数组 A 就是 锯齿数组
每个偶数索引对应的元素都大于相邻的元素即 A[0] A[1] A[2] A[3] A[4] … 或者每个奇数索引对应的元素都大于相邻的元素即 A[0] A[1] A[2] A[3] A[4] … 返回将数组 nums 转换为锯齿数组所需的最小操作次数。
示例 1
输入nums [1,2,3] 输出2 解释我们可以把 2 递减到 0或把 3 递减到 1。
代码
class Solution {public int movesToMakeZigzag(int[] nums) {int[] evennums.clone(),oddnums.clone();int es0,os0,nnums.length;for(int i0;in;i2)//偶数索引的是峰顶两边都比它小{if(i-10even[i-1]even[i])//左边修改成符合的{eseven[i-1]-even[i]1;//需要减少的次数even[i-1]even[i]-1;}if(i1neven[i1]even[i])//右边{eseven[i1]-even[i]1;even[i1]even[i]-1;}}for(int i1;in;i2)//奇数索引的是峰顶两边都比它小{if(i-10odd[i-1]odd[i]){osodd[i-1]-odd[i]1;odd[i-1]odd[i]-1;}if(i1nodd[i1]odd[i]){osodd[i1]-odd[i]1;odd[i1]odd[i]-1;}}return Math.min(os,es);}
}