欢迎光临散文网 会员登陆 & 注册

代码随想录集训营系列——day01

2023-02-01 21:35 作者:free_bee  | 我要投稿

1.1什么是数组

    数组能够顺序存储相同欸行的多个数据,那么不难理解数据结构中的线性表与其是对等的。

1.2 线性表

    逻辑上:除首元素之外其余元素都存在唯一的前驱,除尾元素之外其余元素都用唯一的后继。

    物理上:存在连续存储以及离散存储。

1.3 具体代码

2.1 二分查找(折半查找法)704

    二分查找法有递归与迭代两种形式,任意一种形式中又有对查找范围的两种定义。

  • 在[left,right]的闭区间内比较在数组array中 以 mid = (left+right )/2 为索引的数据与查找数据key的大小关系。根据大于、小于、等于可查抄范围为[left,mid-1]、[mid+1,right]、return mid。注意:此处的left、和right是指索引长度。


  • 在[left,right)的区间内比较在数组array中 以 mid = (left+right )/2 为索引的数据与查找数据key的大小关系。根据大于、小于、等于可查抄范围为[left,mid)、[mid,right)、return mid。注意:此处left、right指数组长度。

2.2移除元素 27

  • 暴力求解法:时间复杂度O(n%5E2%0A%20),空间复杂度O(1) or 时间复杂度O(n),空间复杂度O(n);在每一次迭代中进行二次迭代or创建一个而外空间在存放符合要求的数据

  • 双指针法:时间复杂度O(n),空间复杂度O(1);left,right 类似上文中的二分查找法代表从[left,right)区间内进行swap(交换),算法的目的是将不符合要求的元素都放在左边符合要求的元素放在右侧,从左往右找left需要指向符合要求的元素,从右往左找right需要找不符合要求的元素,然后对left和right索引的元素交换。注意:需要注意每次迭代中的边界问题。




代码随想录集训营系列——day01的评论 (共 条)

分享到微博请遵守国家法律