链接:https://leetcode-cn.com/problems/decrease-elements-to-make-array-zigzag/
此题比较简单,因为只能递减元素,分两类讨论即可,选择较小的一种情况。
java代码:
class Solution {
public int movesToMakeZigzag(int[] nums) {
int sum1 = 0;
for(int i = 0;i<nums.length;i+=2)
{
int temp = 0;
if(i>0&&nums[i]>=nums[i-1])
temp = nums[i]-(nums[i-1]-1);
if(i<nums.length-1&&nums[i]>=nums[i+1])
temp = Math.max(temp,nums[i]-(nums[i+1]-1));
sum1+=temp;
}
int sum2 = 0;
for(int i = 1;i<nums.length;i+=2)
{
int temp = 0;
if(nums[i]>=nums[i-1])
temp = nums[i]-(nums[i-1]-1);
if(i<nums.length-1&&nums[i]>=nums[i+1])
temp = Math.max(temp,nums[i]-(nums[i+1]-1));
sum2+=temp;
}
return Math.min(sum1,sum2);
}
}