解题思想:二分法
这里包含了所有通过二分法解题的leetcode题解
余光、
一旦走出舒适区,你内心的痛点才是促使你前行的动力
2022年重新出发
展开
-
数据结构专题(一)二分法,寻找解题思路看这一篇就够了
和大家一起掌握二分法,本篇文章提供了三个模版,以及大量配套练习题,帮助大家清晰的认识二分法,逐渐了解、掌握相关问题。原创 2020-12-29 19:02:31 · 28963 阅读 · 61 评论 -
LeetCode题解:矩阵中战斗力最弱的 K 行
矩阵中战斗力最弱的 K 行一、题目给你一个大小为 m * n 的矩阵 mat,矩阵由若干军人和平民组成,分别用 1 和 0 表示。请你返回矩阵中战斗力最弱的 k 行的索引,按从最弱到最强排序。如果第 i 行的军人数量少于第 j 行,或者两行军人数量相同但 i 小于 j,那么我们认为第 i 行的战斗力比第 j 行弱。军人 总是 排在一行中的靠前位置,也就是说 1 总是出现在 0 之前。示例:输入:mat =[[1,1,0,0,0],[1,1,1,1,0],[1,0,0,0原创 2020-12-21 19:06:44 · 3014 阅读 · 3 评论 -
LeetCode题解:统计有序矩阵中的负数
统计有序矩阵中的负数一、题目给你一个 m * n 的矩阵 grid,矩阵中的元素无论是按行还是按列,都以非递增顺序排列。请你统计并返回 grid 中 负数 的数目。示例:输入:grid = [[4,3,2,-1],[3,2,1,-1],[1,1,-1,-2],[-1,-1,-2,-3]]输出:8解释:矩阵中共有 8 个负数。二、题解/** * @param {number[][]} grid * @return {number} */var countNegatives原创 2020-12-21 19:05:32 · 1282 阅读 · 0 评论 -
LeetCode题解:寻找比目标字母大的最小字母
寻找比目标字母大的最小字母一、题目给你一个排序后的字符列表 letters ,列表中只包含小写英文字母。另给出一个目标字母 target,请你寻找在这一有序列表里比目标字母大的最小字母。在比较时,字母是依序循环出现的。举个例子:如果目标字母 target = ‘z’ 并且字符列表为 letters = [‘a’, ‘b’],则答案返回 ‘a’示例:输入:letters = ["c", "f", "j"]target = "a"输出: "c"输入:letters = ["c", "f"原创 2020-12-21 19:03:46 · 1184 阅读 · 0 评论 -
LeetCode题解:有效的完全平方数
有效的完全平方数一、题目给定一个正整数 num,编写一个函数,如果 num 是一个完全平方数,则返回 True,否则返回 False。说明:不要使用任何内置的库函数,如 sqrt。示例 1:输入:16输出:True示例 2:输入:14输出:False题解这道题是典型的模版I分析思路在有序的“数组”中,查找指定的元素每次排除一般的查找空间/** * @param {number} num * @return {boolean} */var isPerfectSqu原创 2020-12-21 19:01:43 · 1214 阅读 · 0 评论 -
LeetCode题解:pow(x, n)
pow(x, n)一、题目实现 pow(x, n) ,即计算 x 的 n 次幂函数。示例 1:输入: 2.00000, 10输出: 1024.00000示例 2:输入: 2.00000, -2输出: 0.25000解释: 2-2 = 1/22 = 1/4 = 0.25题解解题思路要判断 n 的正负,以确定我们的底是 x 还是 1/x经过分析 x^9 = x^4 * x^4 * x = (x^2 * x^2) * (x^2 * x^2) * x判断 n 的奇偶性,已确定是原创 2020-12-21 19:00:23 · 4791 阅读 · 5 评论 -
LeetCode题解:两数之和 II - 输入有序数组
两数之和 II - 输入有序数组题干给定一个已按照升序排列 的有序数组,找到两个数使得它们相加之和等于目标数。函数应该返回这两个下标值 index1 和 index2,其中 index1 必须小于 index2。返回的下标值(index1 和 index2)不是从零开始的。你可以假设每个输入只对应唯一的答案,而且你不可以重复使用相同的元素。示例:输入: numbers = [2, ...原创 2019-12-31 11:50:59 · 621 阅读 · 0 评论 -
LeetCode题解:找到 K 个最接近的元素
本文是`二分查找-模版III` 的第最后一题,我会在之后将二分法的常见问题整理成完成的文档,我们一起加油~原创 2020-12-17 18:42:28 · 3575 阅读 · 4 评论 -
LeetCode题解:在排序数组中查找元素的第一个和最后一个位置
本文是二分查找-模版III 的第一题,后面的几道题的也算是本模版的微调版,加油~原创 2020-12-17 18:38:53 · 3546 阅读 · 3 评论 -
LeetCode题解:寻找旋转排序数组中的最小值
本文是二分查找-模版 II 的最后一题,接下来我们将面对更大的挑战,加油~原创 2020-12-16 18:49:16 · 3238 阅读 · 6 评论 -
LeetCode题解:寻找峰值
本文是二分查找-模版 II 的第二题,你可能意识到了,相对应的 leetcode 给他们标出中等的难度,加油!原创 2020-12-15 09:48:40 · 4859 阅读 · 6 评论 -
LeetCode题解:第一个错误的版本
本文是二分查找-模版II 的第一题,后面的几道题的也算是本模版的微调,加油~原创 2020-12-14 09:54:02 · 4028 阅读 · 7 评论 -
LeetCode题解:搜索旋转排序数组
搜索旋转排序数组(middle)更好的阅读体验应该是:审题-思考答题整理-归纳一、题目LeetCode:33.搜索旋转排序数组给你一个整数数组 nums ,和一个整数 target 。该整数数组原本是按升序排列,但输入时在预先未知的某个点上进行了旋转。(例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。请你在数组中搜索 target ,如果数组中存在这个目标值,则返回它的索引,否则返回 -1 。示例 1:输入:nums = [4,5,6,原创 2020-12-11 09:42:37 · 3785 阅读 · 5 评论 -
LeetCode题解:猜数字大小
猜数字大小(easy)更好的阅读体验应该是:审题-思考答题整理-归纳一、题目LeetCode:374.猜数字大小猜数字游戏的规则如下:每轮游戏,我都会从 1 到 n 随机选择一个数字。 请你猜选出的是哪个数字。如果你猜错了,我会告诉你,你猜测的数字比我选出的数字是大了还是小了。你可以通过调用一个预先定义好的接口 guess(num) 来获取猜测结果,返回值一共有 3 种可能的情况(-1,1 或 0):-1:我选出的数字比你猜的数字小 pick < num1:我原创 2020-12-10 09:48:48 · 4241 阅读 · 3 评论 -
LeetCode题解:x的平方根
本文是二分查找-模版 I 的第三题,仅仅是修改与目标值之间的关系,我们一鼓作气拿下下一道题吧!原创 2020-12-09 19:13:48 · 3360 阅读 · 11 评论 -
LeetCode题解:704.二分查找
本篇文章,利用leetcode中最经典的二分查找,带大家了解了分析这类问题的基础模版,我们称它为模版I,看过我的二分法总结的同学应该知道,凭借这套模版以及对应的分析,类似的easy问题应该难不住你了。原创 2020-12-08 19:16:42 · 4258 阅读 · 10 评论 -
LeetCode题解:35.搜索插入位置
LeetCode题解:搜索插入位置,二分法题解的第一篇文章,之后我会陆续整理更多二分法的文章,结合leetcode,和大家一起掌握这个思想原创 2020-12-04 15:13:36 · 4334 阅读 · 5 评论