当前位置:   article > 正文

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

力扣算法刷题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)
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/860550
推荐阅读
相关标签
  

闽ICP备14008679号