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了,我觉得是比较合理的。

转载于:https://www.cnblogs.com/asenyang/p/11297829.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值