leetcode1144
Posted asenyang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode1144相关的知识,希望对你有一定的参考价值。
1 class Solution: 2 def movesToMakeZigzag(self, nums: ‘List[int]‘) -> int: 3 n = len(nums) 4 if n == 1: 5 return 0 6 elif n == 2: 7 if nums[0] != nums[1]: 8 return 0 9 else: 10 return 1 11 else: 12 i = 0 13 sum1 = 0 14 #目标 小 大 小 大 小... 15 while i < n: 16 if i == 0: 17 if nums[i] >= nums[i+1]: 18 sum1 += nums[i] - nums[i+1] + 1 19 elif i == n - 1: 20 if nums[i] >= nums[i-1]: 21 sum1 += nums[i] - nums[i-1] + 1 22 else: 23 if nums[i] >= nums[i-1] or nums[i] >= nums[i+1]: 24 sum1 += nums[i] - min(nums[i-1],nums[i+1]) + 1 25 i += 2 26 27 #目标 大 小 大 小 大... 28 j = 1 29 sum2 = 0 30 while j < n: 31 if j == n-1: 32 if nums[j] >= nums[j-1]: 33 sum2 += nums[j] - nums[j-1] + 1 34 else: 35 if nums[j] >= nums[j-1] or nums[j] >= nums[j+1]: 36 sum2 += nums[j] - min(nums[j-1],nums[j+1]) + 1 37 j += 2 38 return min(sum1,sum2)
这是一道数组问题,没什么特殊的算法思想,只是基本的逻辑处理。
比赛的时候鼓捣了90分钟,最终也没有AC,本次比赛以0分完美收场。
开始感觉是一道Easy题目,应该比较快的能解决,但是写了2次都不对,就开始发蒙了。
脑子一片空白一直持续到12点比赛结束,然后突然感觉清醒了,几分钟就写出来了。
客观评价一下,这道题虽然定位为Easy,但是难度不低,能写出来也算不错了。
话音未落,题目难度已经调整为Medium了,我觉得是比较合理的。
以上是关于leetcode1144的主要内容,如果未能解决你的问题,请参考以下文章
[LeetCode] 1144. Decrease Elements To Make Array Zigzag 递减元素使数组呈锯齿状
leetcode 352 & leetcode 239 & leetcode 295 & leetcode 53 & leetcode 209