【查找算法】
文章平均质量分 57
LeetCode查找类算法
Ring*
本科学硬件,研究生学软件!
展开
-
【LeetCode-162】寻找峰值
给你一个整数数组 nums,找到峰值元素并返回其索引。数组可能包含多个峰值,在这种情况下,返回 任何一个峰值 所在位置即可。,那么数组 nums 中最大值两侧的元素一定严格小于最大值本身。因此,最大值所在的位置就是一个可行的峰值位置。你可以假设 nums[-1] = nums[n] = -∞。你必须实现时间复杂度为 O(log n) 的算法来解决此问题。我们对数组 nums 进行一次遍历,找到最大值对应的位置即可。峰值元素是指其值严格大于左右相邻值的元素。...原创 2022-08-09 10:11:27 · 687 阅读 · 0 评论 -
【LeetCode-74】搜索二维矩阵
两种方法殊途同归,都利用了二分查找,在二维矩阵上寻找目标值。值得注意的是,若二维数组中的一维数组的元素个数不一,方法二将会失效,而方法一则能正确处理。原创 2022-08-09 10:07:30 · 175 阅读 · 0 评论 -
【LeetCode-34】在排序数组中查找元素的第一个和最后一个位置
给你一个按照非递减顺序排列的整数数组 nums,和一个目标值 target。请你找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值 target,返回 [-1, -1]。你必须设计并实现时间复杂度为 O(log n) 的算法解决此问题。...原创 2022-08-09 10:05:56 · 159 阅读 · 0 评论 -
【LeetCode-278】第一个错误的版本
如果该版本为正确版本,那么第一个错误的版本必然位于该版本的右侧,我们缩紧左边界;否则第一个错误的版本必然位于该版本及该版本的左侧,我们缩紧右边界。实现一个函数来查找第一个错误的版本。由于每个版本都是基于之前的版本开发的,所以错误的版本之后的所有版本都是错的。注意到一个性质:当一个版本为正确版本,则该版本之前的所有版本均为正确版本;当一个版本为错误版本,则该版本之后的所有版本均为错误版本。因为题目要求尽量减少调用检查接口的次数,所以不能对每个版本都调用检查接口,而是应该将调用检查接口的次数降到最低。...原创 2022-08-09 10:04:17 · 94 阅读 · 0 评论 -
【LeetCode-69】x的平方根
注意:不允许使用任何内置指数函数和算符,例如 pow(x, 0.5) 或者 x ** 0.5。由于返回类型是整数,结果只保留 整数部分 ,小数部分将被 舍去。给你一个非负整数 x ,计算并返回 x 的 算术平方根。...原创 2022-08-09 10:02:37 · 60 阅读 · 0 评论 -
【LeetCode—35】搜索插入位置(二分查找)
1. 题目描述给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。请必须使用时间复杂度为 O(log n) 的算法。示例 1:输入: nums = [1,3,5,6], target = 5输出: 2示例 2:输入: nums = [1,3,5,6], target = 2输出: 1示例 3:输入: nums = [1,3,5,6], target = 7输出: 4提示:1 <= nums.lengt原创 2022-05-06 21:35:55 · 148 阅读 · 0 评论