二分算法合集
nice_evil
这个作者很懒,什么都没留下…
展开
-
【算法合集-leetcode系列】3. 搜索插入位置(No.35)
题目描述: 35. 搜索插入位置https://leetcode.cn/problems/search-insert-position/用普通循环方法找肯定是可以的,但题目要求复杂度O(log n),就意味着要使用二分法啦。整体思路类似于二分查找目标target,但本问题多了“插入”的情况,需注意边界条件问题。我的思路:(1)先判断左右两端临界问题。若超出数组范围,那么直接比较最大最小值,返回位置(2)当target存在于list中,直接返回(3)当target不存在鱼list中并位于中间两数之间时,解为(原创 2022-07-14 17:15:43 · 1546 阅读 · 0 评论 -
【算法合集-leetcode系列】2.第一个错误的版本(No.278)
278. 第一个错误的版本https://leetcode.cn/problems/first-bad-version/最不需要思考的思路,一个个检索,直到第i个=True,第i-1个=False,写循环检索。但显示超时。那么有规则的数组,使用二分法: 效率没有特别高,因为在二分的时候,计算了一些重复元素继续改进,减少重复检索:减少了一些重复点,效率很高了官方版本:...原创 2022-07-12 18:09:53 · 75 阅读 · 0 评论 -
【算法合集-leetcode系列】1.二分查找(No.704)
题目描述如下:704. 二分查找https://leetcode.cn/problems/binary-search/算法思路:最简单的二分法,移动指针。*记得防止死循环的方法是指针移动mid+-1原创 2022-07-08 19:00:24 · 157 阅读 · 0 评论 -
【leetcode系列】小菜鸡的leetcode第7题:二分查找
'''#弱智解法一:class Solution: def search(self, nums, target): for i,num in enumerate(nums): if num == target: return i return -1'''#减少O(n)时间复杂度方法,二分法查找,因为输入数组为升序排列#由于要求的为target部分的指针,因此需要保持数组不变,否则指针会发生变化;只移动.原创 2022-01-06 22:38:04 · 686 阅读 · 0 评论 -
【leetcode系列】小菜鸡的leetcode第10题:第一个错误的版本
依旧二分法查找的演化。思路是类似于神经网络的激活函数。当位于该点之前,全部为False(0),位于该点之后,全部为True(1),改点时,有且仅有该点,左边相邻为False,右边相邻为True原创 2022-01-12 14:58:00 · 1370 阅读 · 0 评论 -
【leetcode系列】小菜鸡的leetcode第9题:搜索插入位置
#解法1:类似于第一个错误点判断,为sorted数列,#当target位于mid左边时,mid有可能为插入位置,因此设置mid最大=high;#当target位于mid右边时,mid不可能为插入位置,因此mid+1#该解法需要考虑边界问题,防止超出索引,因此len()长度要考虑好class Solution: def searchInsert(self, nums, target) -> int: low,high=0,len(nums) while .原创 2022-01-11 19:18:28 · 392 阅读 · 0 评论