随笔分类 - leetcode-二分
摘要:链接 https://leetcode.cn/problems/arranging-coins/description/ 问题分析 这题看数据规模,遍历肯定搞不定。 看数据规律,我们优先考虑二分。 然后单拎出来一个函数用来计算求和即可。 其中,二分如果不好判断边界,就假定极限情况(来到了left =
阅读全文
摘要:问题链接 https://leetcode.cn/problems/find-minimum-in-rotated-sorted-array/description/ 解题思路 这个题目要求用logn的算法,那只能是二分了。 二分的时候,我们要讲究策略。首先,我们要找旋转数组中的最小值。我们先分析数
阅读全文
摘要:问题链接 https://leetcode.cn/problems/search-a-2d-matrix/description/ 解题思路 我们可以确定,数据是有序的。所以我们有2种办法用二分来解决。 第一种,我们可以写个下标映射函数,把矩阵当做一维数组来进行遍历。 第二种,我们可以先对列进行二分
阅读全文
摘要:问题描述 https://leetcode.cn/problems/find-first-and-last-position-of-element-in-sorted-array/description/ 解题思路 我们查找元素的第一个和最后一个元素的位置,题目要求logn,所以只能用二分。 我们用
阅读全文
摘要:问题链接 https://leetcode.cn/problems/search-in-rotated-sorted-array/description/ 解题思路 这个题目要求复杂度了。我们不要慌,首先分析一下数据。 也就是说,这个数组是由2个上升子序列组成的。所以,我们如果用传统的二分法,是不太
阅读全文
摘要:问题链接 https://leetcode.cn/problems/missing-number/description/ 解题思路 这个题目,可以先排序,然后找到最左侧的下标和数值不匹配的一个。 没啥好说的,常规二分。 不过,一般的二分都是3个分支,分别是等于,小于,大于。 但这个题目不一样,这个
阅读全文
摘要:问题链接 https://leetcode.cn/problems/sqrtx/description/ 解题思路 这个题目,可以用1到x来进行二分。 对照上一题的解题思路,当我们不知道最后应该返回什么的时候,就去想mid == left == right的时候,我们应该返回什么。 代码 class
阅读全文
摘要:问题链接 https://leetcode.cn/problems/search-insert-position/description/ 解题思路 搜索插入位置,是一个常见的二分算法。 二分是有固定模板的。这个题目是搜索插入位置,和最简单的二分不同。 不同之处在于,它在查找失败时不返回False,
阅读全文