力扣算法刷题Day1|数组:二分查找 双指针

力扣题目:704. 二分查找

刷题时长:总计 10分钟 (coding - 5mindebug - 5min)

问题所在

  1. 条件判断mid == target。其中mid是数组下标,target是数组元素,无法比较。
  2. While中无break。当搜索满足nums[mid] == target,应break

本题收获

  1. 区间定义的区别:左闭右开 vs 左闭右闭 (preferred)
  2. 运用mid = left + (right – left) / 2 防溢出。 Python int 类型是可以无限大的,不会溢出。Python 会自动将 int 类型转换为 long 类型,以避免溢出。但是为了养成良好习惯还是使用文章中的写法,避免以后写别的语言犯错。
  3. 二分查找的变形:根据题意,可集合两个判断条件,或答案取左/右边界而非mid 
  4. 完成相关题目:#35 (easy - 5min), #34 (medium - 20min), #69(easy – 20min), #368 (easy – 5min)


力扣题目:27. 移除元素

刷题时长:双指针法5min,暴力法15min

问题所在

  1. 暴力法用for循环无法动态改变数组长度,此处应用while循环

本题收获

  1. 快慢指针法可使运行时间复杂度从O(n^2)优化至O(n)
  2. while vs for loop
  3. 快慢指针解题套路模版
  4. 完成相关题目:#26(easy-5min), #283 (easy-30min), #844(easy-20min), #977(easy-20min)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值