leetcode二分查找
二分查找
谜底666
我迷恋的时光自天空倾倒
展开
-
leetcode240 搜索二维矩阵II
输入:matrix = [[1,4,7,11,15],[2,5,8,12,19],[3,6,9,16,22],[10,13,14,17,24],[18,21,23,26,30]], target = 5。这道题还是用的类似于二分的思想,但是也不是二分了,就是每次用来排除一整行或整列。编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target。原创 2024-06-14 08:04:43 · 269 阅读 · 0 评论 -
leetcode153 寻找旋转排序数组中的最小值
注意,数组 [a[0], a[1], a[2], …, a[n-1]] 旋转一次 的结果为数组 [a[n-1], a[0], a[1], a[2], …, a[n-2]]。已知一个长度为 n 的数组,预先按照升序排列,经由 1 到 n 次 旋转 后,得到输入数组。给你一个元素值 互不相同 的数组 nums ,它原来是一个升序排列的数组,并按上述情形进行了多次旋转。解释:原数组为 [1,2,3,4,5] ,旋转 3 次得到输入数组。输入:nums = [3,4,5,1,2]原创 2024-06-01 20:36:17 · 193 阅读 · 0 评论 -
leetcode33 搜索旋转排序数组
在传递给函数之前,nums 在预先未知的某个下标 k(0原创 2024-06-01 19:36:39 · 215 阅读 · 0 评论 -
leetcode34 在排序数组中查找元素的第一个和最后一个位置
给你一个按照非递减顺序排列的整数数组 nums,和一个目标值 target。请你找出给定目标值在数组中的开始位置和结束位置。首先递增有序数组,要想到二分法,这道题可以用左闭右开的方法来求出最开始的位置;输入:nums = [5,7,7,8,8,10], target = 8。你必须设计并实现时间复杂度为 O(log n) 的算法解决此问题。如果数组中不存在目标值 target,返回 [-1, -1]。原创 2024-04-03 09:21:17 · 189 阅读 · 0 评论 -
leetcode74搜索二维矩阵
输入:matrix = [[1,3,5,7],[10,11,16,20],[23,30,34,60]], target = 3。给你一个整数 target ,如果 target 在矩阵中,返回 true;否则,返回 false。原创 2024-06-01 18:05:44 · 598 阅读 · 0 评论 -
leetcode35 搜索插入位置
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。在这个左闭右开写法的代码中,跳出循环的条件就是left =right,等于的时候,返回left或right都可以。找不到的情况下,返回大于target的第一个下标即可,也就是left。输入: nums = [1,3,5,6], target = 2。请必须使用时间复杂度为 O(log n) 的算法。原创 2024-05-29 09:28:18 · 275 阅读 · 0 评论 -
leetcode704 二分查找 easy
这个是最普通的二分查找,基本关键字就是『有序』、『无重复』,出现这两个关键字,可以考虑下二分查找。题目:给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。示例:输入: nums = [-1,0,3,5,9,12], target = 9 输出: 4 解释: 9 出现在 nums 中并且下标为 4 解析:二分查找的基本概念一直都明白,就是写的...原创 2022-04-10 11:14:22 · 495 阅读 · 0 评论