LeetCode(力扣笔记) - 20201113 - HK

刷力扣遇到的问题 - 坑总结 - 1

  1. 数组越界

error:
– list assignment index out of range
列表分配的索引超出范围

原因:
(1)List[index]的index由于循环遍历的i+1之类的操作,超出了列表范围;
(2)一个List是空的[ ],进行了List[0]的操作,也会导致这个报错;

解决:
(1)使用双指针等方法避免指针指向界外;
(2)用空的{}代替空的[],把[0]作为一个key,存入一个value,可以解决空的结构不能调用a[0]的问题;

  1. 滑动窗口的效率提升
    背景:一个List,window_size = k,提取window中的最大值

普通办法:
– 窗口每滑动一步,就对比窗口中的所有值,找出最大;

优化办法:
– 因为第一个数在下一轮滑动将会滑出窗口,故每次把窗口的第一个数与窗口的剩下的数作比较,(1)若第一个数比剩下的都大,则比较第一个数和下一轮将会滑动进来的数即可找到下一轮的最大值;(2)若第一个数不是剩下的数中最大的,则在下一个窗口中对比[num:num+k]这几个数找最大值。
这两种情况下,第一种情况将会剩下很多时间。

        max_num = max(nums
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值