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

一、数组理论基础

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

需要两点注意的是

  • 数组下标都是从0开始的。
  • 数组内存空间的地址是连续的

C++中的二维数组是连续分布的

代码随想录算法训练营day1 | 704二分查找 | 27移除元素_第1张图片

注:8+4=c(c=12),c+4=16(但因为是16进制,故进一位) 

二、704.二分查找

代码随想录算法训练营day1 | 704二分查找 | 27移除元素_第2张图片

很像高中在数轴上做分类讨论的那种题。如果是左闭右闭区间,则再取新区间的时候需要绕开原来的点,所以会产生+1-1这种情况。如果是左闭右开区间,target在middle右边时,同上,需要绕开原来的点,才能保证新区间和原区间无重复值;反之在左边,不需要绕开原来的点,因为本来右端点就取不到,所以直接让右端点=middle即可。

python中“//”是一个算术运算符,表示整数除法,它可以返回商的整数部分(向下取整)。

 三、27.移除元素

代码随想录算法训练营day1 | 704二分查找 | 27移除元素_第3张图片

 双指针法对元素进行覆盖,不是直接删除数组中的元素 

注意缩进,快指针要跳出if循环做迭代,慢指针要在if循环中迭代。

你可能感兴趣的:(代码随想录打卡,算法,数据结构)