二分
文章平均质量分 56
earlene_wyl
这个作者很懒,什么都没留下…
展开
-
leetcode 二分 - 山脉数组 941 && 852 && 1095
leetcode941. 有效的山脉数组 easymedium 题目描述:解题思路:线性扫描即可, 但其实这题我觉得是3道里面最难的 orz代码://class Solution {public: bool validMountainArray(vector<int>& arr) { int n = arr.size(); if (n < 3) re...原创 2021-12-17 17:51:35 · 232 阅读 · 0 评论 -
leetcode 面试题 10.03. 搜索旋转数组 medium
leetcode面试题 10.03. 搜索旋转数组 medium 题目描述:解题思路:首先多次旋转,最后还是两段递增的序列,也就是跟leetcode 81一样的。因为要求返回索引值最小的,所以需要删除结尾重复的(让最后找到的下标是在前面)代码://class Solution {public: int search(vector<int>& arr, int target) { if (arr....原创 2021-12-17 16:33:51 · 339 阅读 · 0 评论 -
leetcode 704. 二分查找 easy
leetcode704. 二分查找 easy 题目描述:解题思路:练二分模板的套路题代码://class Solution {public: int search(vector<int>& nums, int target) { if (nums.empty()) return -1; int l = 0, r = nums.size()-1;...原创 2021-12-17 16:26:18 · 245 阅读 · 0 评论 -
leetcode 274. H指数 medium
leetcode 274. H指数 medium 题目描述:给定一位研究者论文被引用次数的数组(被引用次数是非负整数)。编写一个方法,计算出研究者的h指数。h 指数的定义: h_index代表有h篇论文的引用次数至少为h次。h指数为最大的h_index解题思路:h指数的取值范围是0~nums.size()解法1:wiki上的解法 O(nlo...原创 2019-08-08 15:06:20 · 159 阅读 · 0 评论 -
leetcode 275. H指数 II medium
leetcode275. H指数 II medium 题目描述:给定一位研究者论文被引用次数的数组(被引用次数是非负整数),数组已经按照升序排列。编写一个方法,计算出研究者的h指数。h 指数的定义: h_index代表有h篇论文的引用次数至少为h次。h指数为最大的h_index解题思路:二分,因为h指数的取值范围是0~nums.size()。...原创 2019-08-08 15:12:18 · 116 阅读 · 0 评论 -
leetcode 81. 搜索旋转排序数组 II medium
leetcode81. 搜索旋转排序数组 II medium 题目描述:假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组[0,0,1,2,2,5,6]可能变为[2,5,6,0,0,1,2])。编写一个函数来判断给定的目标值是否存在于数组中。若存在返回true,否则返回false。示例1:输入: nums = [2,5,6,0,0,1,2], target = 0输出: true示例2:输入: nums = [2,5,6...原创 2019-09-10 22:47:14 · 162 阅读 · 0 评论 -
leetcode 744. 寻找比目标字母大的最小字母 easy
leetcode 744. 寻找比目标字母大的最小字母easy 题目描述:给定一个只包含小写字母的有序数组letters和一个目标字母target,寻找有序数组里面比目标字母大的最小字母。如果找不到,返回数组里的第一个字符解题思路:后半段的开头代码:class Solution {public: char nextGreatestL...原创 2019-09-26 18:20:27 · 113 阅读 · 0 评论 -
leetcode 540. 有序数组中的单一元素 medium
leetcode 540. 有序数组中的单一元素 medium 题目描述:给定一个只包含整数的有序数组,每个元素都会出现两次,唯有一个数只会出现一次,找出这个数。示例 1:输入: [1,1,2,3,3,4,4,8,8]输出: 2示例 2:输入: [3,3,7,7,10,11,11]输出: 10注意: 您的方案应该在 O(log n)时间复杂度和 O...原创 2019-09-26 18:47:00 · 111 阅读 · 0 评论 -
leetcode 4. 寻找两个有序数组的中位数(任意第k小的数) hard
leetcode4. 寻找两个有序数组的中位数 hard 题目描述:给定两个大小为 m 和 n 的有序数组nums1 和nums2。请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为O(log(m + n))。你可以假设nums1和nums2不会同时为空。示例 1:nums1 = [1, 3]nums2 = [2]则中位数是...原创 2019-10-06 23:04:14 · 592 阅读 · 0 评论 -
leetcode 287. 寻找重复数 medium
leetcode287. 寻找重复数 medium 题目描述:给定一个包含n + 1 个整数的数组nums,其数字都在 1 到 n之间(包括 1 和 n),可知至少存在一个重复的整数。假设只有一个重复的整数,找出这个重复的数。说明:不能更改原数组(假设数组是只读的)。只能使用额外的 O(1) 的空间。时间复杂度小于 O(n2) 。数组中只有一个重...原创 2019-08-08 13:57:27 · 118 阅读 · 0 评论 -
leetcode 33. 搜索旋转排序数组 medium
leetcode33. 搜索旋转排序数组 medium 题目描述:假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组[0,1,2,4,5,6,7]可能变为[4,5,6,7,0,1,2])。搜索一个给定的目标值,如果数组中存在这个目标值,则返回它的索引,否则返回-1。你可以假设数组中不存在重复的元素。你的算法时间复杂度必须是...原创 2019-08-06 01:36:14 · 117 阅读 · 0 评论 -
leetcode 153. 寻找旋转排序数组中的最小值 medium
leetcode153. 寻找旋转排序数组中的最小值 medium 题目描述:假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组[0,1,2,4,5,6,7] 可能变为[4,5,6,7,0,1,2])。请找出其中最小的元素。你可以假设数组中不存在重复元素。示例 1:输入: [3,4,5,1,2]输出: 1示例 2:输...原创 2019-08-06 01:14:22 · 170 阅读 · 0 评论 -
leetcode 162. 寻找峰值 medium
leetcode162. 寻找峰值 medium 题目描述:峰值元素是指其值大于左右相邻值的元素。给定一个输入数组nums,其中 nums[i] ≠ nums[i+1],找到峰值元素并返回其索引。数组可能包含多个峰值,在这种情况下,返回任何一个峰值所在位置即可。你可以假设nums[-1] = nums[n] = -∞。说明:你的解法应该是O...原创 2019-08-21 22:38:57 · 136 阅读 · 0 评论 -
刷题(0)-二分查找
目录二分两种模板:1)模板一(后半段的开头):2)模板二(前半段的结尾):3)查找值相同的二分:查找值相同的二分小变种:找到第一个k和最后一个k的二分:二分两种模板:后下右 +1前 上左 -1首先必须满足一个条件,给的区间分成两段,一段全都满足条件,另一段全都不满足。然后根据你要找的是后半段的开头(模板一)还是前......原创 2019-08-04 14:35:18 · 221 阅读 · 1 评论 -
leetcode 69. x 的平方根 easy
leetcode69. x 的平方根 easy 题目描述:实现int sqrt(int x)函数。计算并返回x的平方根,其中x 是非负整数。由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。解题思路:因为结果只保留整数的部分,小数部分将被舍去,所以理所当然的想到求的是最后一个数 所以是模板2,前半段的结尾.(用模板1也行,但ch...原创 2019-08-05 22:33:25 · 130 阅读 · 0 评论 -
leetcode 35. 搜索插入位置 easy
leetcode35. 搜索插入位置 easy 题目描述:给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。解题思路:因为假如没有这个数,需要找到插入的位置,所以返回第一个大于等于target的下标即可(即实现lower_bound)代码:class S...原创 2019-08-05 22:57:20 · 103 阅读 · 0 评论 -
leetcode 34. 在排序数组中查找元素的第一个和最后一个位置 medium
leetcode34. 在排序数组中查找元素的第一个和最后一个位置 medium 题目描述:给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。你的算法时间复杂度必须是O(log n) 级别。如果数组中不存在目标值,返回[-1, -1]。解题思路: //找开始和结束...原创 2019-08-21 22:37:50 · 186 阅读 · 0 评论 -
leetcode 74. 搜索二维矩阵 medium
leetcode74. 搜索二维矩阵medium 题目描述:编写一个高效的算法来判断m x n矩阵中,是否存在一个目标值。该矩阵具有如下特性:每行中的整数从左到右按升序排列。每行的第一个整数大于前一行的最后一个整数。示例1:输入:matrix = [ [1, 3, 5, 7], [10, 11, 16, 20], [23, 3...原创 2019-08-21 22:37:58 · 151 阅读 · 0 评论 -
leetcode 240. 搜索二维矩阵 II medium
leetcode240. 搜索二维矩阵 IImedium 题目描述:编写一个高效的算法来搜索mxn矩阵 matrix 中的一个目标值 target。该矩阵具有以下特性:每行的元素从左到右升序排列。每列的元素从上到下升序排列。解题思路:注意跟上一题的区别(这一题不是二分)从右上角or左下角开始搜即可代码:class Soluti...原创 2019-08-21 22:38:08 · 177 阅读 · 0 评论 -
leetcode 154. 寻找旋转排序数组中的最小值 II hard
leetcode154. 寻找旋转排序数组中的最小值 II hard 题目描述:假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组[0,1,2,4,5,6,7] 可能变为[4,5,6,7,0,1,2])。请找出其中最小的元素。注意数组中可能存在重复的元素。示例 1:输入: [1,3,5]输出: 1示例2:输入: [2...原创 2019-08-06 01:15:48 · 159 阅读 · 0 评论 -
leetcode 278. 第一个错误的版本 easy
leetcode278. 第一个错误的版本 easy 题目描述:你是产品经理,目前正在带领一个团队开发新的产品。不幸的是,你的产品的最新版本没有通过质量检测。由于每个版本都是基于之前的版本开发的,所以错误的版本之后的所有版本都是错的。假设你有 n 个版本 [1, 2, ..., n],你想找出导致之后所有版本出错的第一个错误的版本。你可以通过调用bool ...原创 2019-08-21 22:38:52 · 340 阅读 · 0 评论