day01| 704. 二分查找、27. 移除元素。

文章探讨了二分查找的实现,强调了区间规则(左闭右开,左闭右闭)的重要性,并对比了C++和Java中数组地址的连续性。还提到了vector作为容器与数组的区别,以及二分查找的时间复杂度。作者分享了学习过程中的难点,如边界值处理和元素删除,并记录了学习收获,包括二分查找中等号的使用和特定边界情况的理解。
摘要由CSDN通过智能技术生成

刷题要求

1.把 704写熟练,要熟悉 根据 左闭右开,左闭右闭 两种区间规则 写出来的二分法


基础知识

1.C++中数组地址是连续的,Java中数组地址不连续。
2.vector的底层实现是array,vector是容器,不是数组。
3.数组的元素是不能删的,只能覆盖。
4.由于每次查找都会将查找范围缩小一半,因此二分查找的时间复杂度是 O(logn),其中 n 是数组的长度。


今日学习的文章链接,或者视频链接

1.https://programmercarl.com/%E6%95%B0%E7%BB%84%E7%90%86%E8%AE%BA%E5%9F%BA%E7%A1%80.html


看完代码随想录之后的想法

1.二分查找的做法主要是定义查找的范围,即定义两个边界,寻找边界的中间值去找是否与target一样。变动的是两个边界值,当然middle随边界值而改变。所以细节都应该在边界值上。


自己实现过程中遇到哪些困难

还真是一看就会一写就废,原理能懂,代码就是不会写。多练多练。还有诸多细节如二分查找的边界值要理解透。


今日收获,记录一下自己的学习时长

1.二分查找的while那里是否需要“=”号,只需要看合不合法,要是左闭右开,肯定不能取等于,因为左边能取到右边取不到。
2.二分查找另外一个重要边界是判断等于middle还是middle-1。【还没理解透,后面补】
3.移除元素只会了暴力解法,双指针解法后面补。【还没理解透,后面补】

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值