Leetcode
文章平均质量分 59
跨越七海的風
这个作者很懒,什么都没留下…
展开
-
【Leetcode】二分查找进阶版
875. 爱吃香蕉的珂珂int hour (int* piles, int pilesSize, int x);int minEatingSpeed(int* piles, int pilesSize, int h){ int left = 1; int right = 1000000000 + 1; while (left < right) { int mid = left + (right - left) / 2; if (hour(pi原创 2022-03-11 16:02:31 · 149 阅读 · 0 评论 -
【Leetcode】数组的元素修改
元素的原地修改使用很重要一个技巧:双指针。注意这里的指针并非狭义上链表中那种指针,而是只要能指明位置的,都叫指针。双指针使用的好处是避免了暴力循环里的跑空趟:用一个快指针在前面探路,看看与后面的大部队(慢指针)有没有重复的。要是确认安全(不重复),那么就让大部队前进一步,把快指针的内容同步上去。要是不安全(重复了),那么就让大部队原地不动(慢指针的内容不动)。快指针向前一步继续打探情报。26. 删除有序数组中的重复项int removeDuplicates(int* nums, int numsSi原创 2022-02-25 10:13:22 · 728 阅读 · 0 评论 -
[Leetcode]二分查找(三板斧:定位置,左边界,右边界)
对于二分查找来说,最重要一点是要弄清楚如何查找。所谓如何查找首先要弄清查找的边界,对于给定的的一个范围是[闭区间]还是[左闭右开),这其中牵扯到每一次更新位置的时候mid的定位。每次拿着中间位置的那个元素和目标元素去进行比较,其实换个角度想也就是将目标所在的位置通过改变left与right来一点点定位出来,这也是贯穿整个二分查找元素位置、左边界、右边界的核心思想。每次和中间位置那个元素比较完之后,除非是相等,否则就将中间的那个元素剔除(因为已经比较过了),向左或者向右来把这个目标所在的范围一点点逼近。原创 2022-03-10 14:37:14 · 303 阅读 · 0 评论