二分
_amnesia_
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
leetcode 34. 在排序数组中查找元素的第一个和最后一个位置
题解 昨天,没做,今天要做两道题了。。。。 很简单 二分 之前JAVA老师也让用JAVA写过,虽然忘了,但是思路还是一样的。 代码 class Solution { public: vector<int> searchRange(vector<int>& nums, int target) { vector<int> a; int n = nums.size(); if(n == 0){原创 2021-04-15 09:56:37 · 115 阅读 · 0 评论 -
leetcode 33. 搜索旋转排序数组
题解 看评论说不知道这道题的意义所在,emm确实有的题暴力就可以解决 主要看思路什么的吧 二分的话效率会更高,所以这里给出两种解法,大家还可以联系一下二分算法。 二分的思路说一下吧,要不然可能不太理解 先判断左右两边是否为有序数组,不管怎么分,左右两边必有一个有序数组,有过左边有序,就判断目标值是否在左区间的范围内,如果在的话那就缩小,不在的话那么一定就在右边 如果右边有序,原理和上述方法相同,来判断缩小的区间范围。 先找到有序的区间范围然后先判断有序的区间段否则为另一部分,这样判断比较方便。 不太理解的话原创 2021-04-13 10:00:34 · 116 阅读 · 0 评论 -
leetcode 778. 水位上升的泳池中游泳 (二分 + DFS)
题解 不知道为什么要把它定义为难题,和昨天做的那道题很相似。 这道题的意思就是要找到一条路径使它的最大值为最小值。 所以找到最大值和最小值直接进行二分搜索即可判断当前值是否可以找到一条路径如果找不到那值就进行放大,找到了值就进行缩小。 如何搜索路径 dfs 进行深度搜索判断当前条件下是否存在一条路径。 需要注意的是最小值不是0而是开始进入的第一个值。 如有错误欢迎指正~ 代码如下 在这里插入代码片 ...原创 2021-01-30 15:22:55 · 197 阅读 · 0 评论 -
leetcode 1631. 最小体力消耗路径 (二分 + DFS)
题解 二分 + dfs 题目中给出的 <=1heights[i][j]的取值范围 =<10000000 那么最大值为99999,最小值为0,那么就可以-二分,从中间开始查找这个最大值是否可以走到右下角,如果可以那么继续二分搜索最小的最大值。 dfs 深度搜索是否有一条路径可以到达右下角,并且两个距离之间的差的绝对值 <= mid 代码 class Solution { public: bool dfs(vector<vector<int>>& hei原创 2021-01-29 19:31:39 · 208 阅读 · 0 评论
分享