数据结构与算法
lianjiesone
这个作者很懒,什么都没留下…
展开
-
二分查找
对于二分查找需要考虑区间:左闭右闭,左闭右开二分查找会出三种题型:1.返回可以插入的位置2.重复元素出现的上界和下界1.返回可以插入的位置:左闭右闭class Solution { public int searchInsert(int[] nums, int target) { //二分查找 int left = 0; int right = nums.length - 1; //闭区间 while(left <= right){原创 2021-03-10 10:30:00 · 100 阅读 · 0 评论 -
环形队列判断队满
在引用循环队列前,我们需要了解队列是如何线性实现的(下图有错,x=sq[front++])。简单地讲,便是当队列为空时,front = rear = 0,每当插入元素尾指针+1,删除元素是头指针+1。但是,我们会发现一个问题,如上面的第四个图,0,1,2三个空间并没有使用。因此,为了占用该空间,我们使用了循环队列来实现。循环队列原理图:我们可以发现,当循环队列属于上图的d1情况时,是无法判断当前状态是队空还是队满。为了达到判断队列状态的目的,可以通过牺牲一个存储空间来实现。如上图d2所示,队头原创 2020-12-28 17:47:49 · 2614 阅读 · 0 评论