理论基础:
代码随想录
刚开始看到题目时有点慌,对于算法其实真的就心里没底,但是通过看文章搭配视频讲解(其实开个倍速也完全看得懂),在理解的基础上解题也就很简单啦(●ˇ∀ˇ●)
时间复杂度O(log n);空间复杂度O(1)
其中防止middle溢出可写为int middle = left + ((right - left)/2);同时要注意的是图中所示为区间左闭右闭的情况;左闭右开的条件下,临界值left和right的设置是存在一定变化的。
思路:由于数组分配的是一段连续内存,因此元素的移除其实对应的是覆盖。故可以用暴力解法即两层for循环完成。图中使用的是另一种解法:双指针(快慢指针)。
时间复杂度O(n);空间复杂度O(1)