代码随想录算法训练营第1天 |704二分查找、27移除元素

题目:704.二分查找

文档讲解: 二分查找
视频讲解:二分查找
状态:AC

思路

这道题是数组里比较基础的一道。
数组下标从0开始,连续地址。
本题是有序的,可以用二分法。

困难

困难点在于几个边界条件的判断。
1、确定使用左闭右闭还是左闭右开,决定初始right的值;
1、while里面,left和right左闭右闭才可相等,否则不行;
2、if分别判断target大于、小于后,更新边界时不要再把middle包含进下一次循环的区间!等于的话就直接返回middle即可。

笔记

每种语言都会点,但长时间不写代码重捡起来基础语法就会混淆。
python的判断是加冒号,if、elif、else。


题目:27.移除元素

文档讲解: 移除元素
视频讲解:移除元素
状态:看视频后AC

思路

数组删除元素,只能后一个元素覆盖前一个。
最直白的思路是for循环遍历数组,再一层for循环依次向前覆盖指定元素,但这样就n^2了。卡哥提供了双指针的思路,直接变成O(n)。
fast遍历数组,slow用于生成新数组,即fast遇到val时跳过,slow不变,fast自己往前走。

困难

1、外层循环是fast遍历数组
2、目的是找新数组,所以遇到val要跳过,判断不等于!=
3、最后return的值是slow

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值