代码随想录训练营第一天| Leetcode数组理论基础|704二分查找

1、数组是存放在连续内存空间上的相同类型数据的集合。

2、数组可以方便的通过下标索引的方式获取到下标对应的数据。

3、因为数组的内存空间连续,所以增添或删除元素时需要移动其他元素。

4、在c++中,二维数组在地址空间上是连续的。

704二分查找

关键点1:确定使用左闭右闭还是左闭右开原则,.size()应该减一以符合区间定义。

关键点2:while的判断条件中是否有=,当=时符合左闭右闭区间定义。该判断条件是因为middle+1。

关键点:right = middle/middle-1        left = middle/middle+1。当左闭右闭时,左右端点已经判断了。

27移除元素

暴力法:

关键点1:数组长度为nums.size(),外层循环边界i<nums.size()

关键点2:内层循环将数组元素前移时,j<numslength-1,防止j越界

关键点3:每次找到target时,数组长度减一,同时删除的位置被新元素取代,需要减一重新判断。

双指针法:(太好用了)

关键点1:明确快指针用于遍历,慢指针用于记录

977有序数组的平方

关键点1:不能在原数组上操作

关键点2:指针循环条件or(int i=0,j=numslength-1;i<=j;)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值