Decrease Elements To Make Array Zigzag LeetCode solution in Python
1class Solution:2def solve(self, arr, n, x):3idx = 14ans = 05while idx < n:6if idx == 0:7idx += 18if idx % 2 == x:9if arr[idx - 1] >= arr[idx]:10ans += arr[idx - 1] - arr[idx] + 111arr[idx - 1] = arr[idx] - 112idx = idx - 113else:14idx = idx + 115else:16if arr[idx - 1] <= arr[idx]:17ans += arr[idx] - arr[idx - 1] + 118arr[idx] = arr[idx - 1] - 119idx += 120return ans2122def movesToMakeZigzag(self, nums: List[int]) -> int:23ans1 = self.solve([x for x in nums], len(nums), 0)24ans2 = self.solve([x for x in nums], len(nums), 1)25return min(ans1, ans2)