![](https://img-blog.csdnimg.cn/20190927151043371.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
二分
文章平均质量分 56
「二分」就是把「待搜索区间」分为「有目标元素的区间」和「不包含目标元素的区间」,排除掉「不包含目标元素的区间」的区间,剩下就是「有目标元素的区间」。写一个while中间分3中情况,找到,在左,在右
answer_yym
且随疾风前行
展开
-
二叉搜索树的插入操作
1、描述给定二叉搜索树(BST)的根节点和要插入树中的值,将值插入二叉搜索树。 返回插入后二叉搜索树的根节点。 输入数据 保证 ,新值和原始二叉搜索树中的任意节点值都不同。注意,可能存在多种有效的插入方式,只要树在插入后仍保持为二叉搜索树即可。 你可以返回 任意有效的结果来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/insert-into-a-binary-search-tree著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出原创 2021-10-19 22:41:19 · 772 阅读 · 0 评论 -
山脉寻最大值折线图
1、描述1234 5 4321 输出下标4符合下列属性的数组 arr 称为 山峰数组(山脉数组) :arr.length >= 3存在 i(0 < i < arr.length - 1)使得:arr[0] < arr[1] < … arr[i-1] < arr[i]arr[i] > arr[i+1] > … > arr[arr.length - 1]给定由整数组成的山峰数组 arr ,返回任何满足 arr[0] < arr[1] &l原创 2021-10-14 10:41:53 · 98 阅读 · 0 评论 -
123456,n每行个数,给总个数,求行数
1、描述你总共有 n 枚硬币,并计划将它们按阶梯状排列。对于一个由 k 行组成的阶梯,其第 i 行必须正好有 i 枚硬币。阶梯的最后一行 可能 是不完整的。给你一个数字 n ,计算并返回可形成 完整阶梯行 的总行数。来源:力扣(LeetCode)链接:著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。2、关键字等差数列3、思路二分查找数学公式,直接求右边的解,然后向下取整。4、notes注意:强制类型转换的范围,数字会变大5、复杂度二分时间:O(logN)空间原创 2021-10-10 22:26:12 · 228 阅读 · 0 评论 -
找到K个最接近x的数
文章目录1、描述2、关键字3、思路1、描述给定一个排序好的数组 arr ,两个整数 k 和 x ,从数组中找到最靠近 x(两数之差最小)的 k 个数。返回的结果必须要是按升序排好的。整数 a 比整数 b 更接近 x 需要满足:|a - x| < |b - x| 或者|a - x| == |b - x| 且 a < b示例 1:输入:arr = [1,2,3,4,5], k = 4, x = 3输出:[1,2,3,4]示例 2:输入:arr = [1,2,3,4,5], k =原创 2021-09-15 11:16:46 · 265 阅读 · 0 评论 -
寻找峰值有序数组
文章目录1、描述2、关键字3、思路4、notes5、复杂度6、code1、描述峰值元素是指其值严格大于左右相邻值的元素。给你一个整数数组 nums,找到峰值元素并返回其索引。数组可能包含多个峰值,在这种情况下,返回 任何一个峰值 所在位置即可。你可以假设 nums[-1] = nums[n] = -∞ 。你必须实现时间复杂度为 O(log n) 的算法来解决此问题。示例 1:输入:nums = [1,2,3,1]输出:2解释:3 是峰值元素,你的函数应该返回其索引 2。来源:力扣(Lee原创 2021-09-15 07:07:03 · 99 阅读 · 0 评论 -
搜索旋转之后的有序数字_二分
文章目录1、题目描述2、思路3、note4、复杂度5、code1、题目描述33假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。搜索一个给定的目标值,如果数组中存在这个目标值,则返回它的索引,否则返回 -1 。你可以假设数组中不存在重复的元素。你的算法时间复杂度必须是 O(log n) 级别。示例 1:输入: nums = [4,5,6,7,0,1,2], target = 0输出: 4示例原创 2021-09-06 10:53:44 · 75 阅读 · 0 评论 -
数值的整数次方01
文章目录1、描述2、关键字3、思路4、notes5、复杂度6、code1、描述实现 pow(x, n) ,即计算 x 的 n 次幂函数(即,xn)。不得使用库函数,同时不需要考虑大数问题。示例 1:输入:x = 2.00000, n = 10输出:1024.00000示例 2:输入:x = 2.10000, n = 3输出:9.26100示例 3:输入:x = 2.00000, n = -2输出:0.25000解释:2-2 = 1/22 = 1/4 = 0.25来源:力扣(Leet原创 2021-09-01 17:22:18 · 84 阅读 · 0 评论 -
第一个出错的版本git
文章目录1、描述2、关键字3、思路4、notes5、复杂度6、code1、描述你是产品经理,目前正在带领一个团队开发新的产品。不幸的是,你的产品的最新版本没有通过质量检测。由于每个版本都是基于之前的版本开发的,所以错误的版本之后的所有版本都是错的。假设你有 n 个版本 [1, 2, …, n],你想找出导致之后所有版本出错的第一个错误的版本。你可以通过调用 bool isBadVersion(version) 接口来判断版本号 version 是否在单元测试中出错。实现一个函数来查找第一个错误的版本原创 2021-06-13 09:15:45 · 151 阅读 · 0 评论 -
求和为s的两个数字
文章目录1、描述2、关键字3、思路4、notes5、复杂度6、code1、描述输入一个递增排序的数组和一个数字s,在数组中查找两个数,使得它们的和正好是s。如果有多对数字的和等于s,则输出任意一对即可。示例 1:输入:nums = [2,7,11,15], target = 9输出:[2,7] 或者 [7,2]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/he-wei-sde-liang-ge-shu-zi-lcof著作权归领扣网络所有原创 2021-06-02 20:16:24 · 115 阅读 · 0 评论 -
1482. 制作 m 束花所需的最少天数
1、描述给你一个整数数组 bloomDay,以及两个整数 m 和 k 。现需要制作 m 束花。制作花束时,需要使用花园中 相邻的 k 朵花 。花园中有 n 朵花,第 i 朵花会在 bloomDay[i] 时盛开,恰好 可以用于 一束 花中。请你返回从花园中摘 m 束花需要等待的最少的天数。如果不能摘到 m 束花则返回 -1 。示例 1:输入:bloomDay = [1,10,3,10,2], m = 3, k = 1输出:3解释:让我们一起观察这三天的花开过程,x 表示花开,而 _ 表示花还原创 2021-05-09 09:56:55 · 110 阅读 · 0 评论 -
在D天内送达包裹的能力
文章目录1、描述2、关键字3、思路4、notes5、复杂度6、code1、描述传送带上的包裹必须在 D 天内从一个港口运送到另一个港口。传送带上的第 i 个包裹的重量为 weights[i]。每一天,我们都会按给出重量的顺序往传送带上装载包裹。我们装载的重量不会超过船的最大运载重量。返回能在 D 天内将传送带上的所有包裹送达的船的最低运载能力。示例 1:输入:weights = [1,2,3,4,5,6,7,8,9,10], D = 5输出:15解释:船舶最低载重 15 就能够在 5 天内原创 2021-04-26 09:07:42 · 172 阅读 · 0 评论 -
生气的店老板
文章目录1、描述2、关键字3、思路4、notes5、复杂度6、code1、描述1052今天,书店老板有一家店打算试营业 customers.length 分钟。每分钟都有一些顾客(customers[i])会进入书店,所有这些顾客都会在那一分钟结束后离开。在某些时候,书店老板会生气。 如果书店老板在第 i 分钟生气,那么 grumpy[i] = 1,否则 grumpy[i] = 0。 当书店老板生气时,那一分钟的顾客就会不满意,不生气则他们是满意的。书店老板知道一个秘密技巧,能抑制自己的情绪,可以让原创 2021-02-23 23:20:19 · 62 阅读 · 0 评论 -
2020-12-07
1、描述在代号为 C-137 的地球上,Rick 发现如果他将两个球放在他新发明的篮子里,它们之间会形成特殊形式的磁力。Rick 有 n 个空的篮子,第 i 个篮子的位置在 position[i] ,Morty 想把 m 个球放到这些篮子里,使得任意两球间 最小磁力 最大。已知两个球如果分别位于 x 和 y ,那么它们之间的磁力为 |x - y| 。给你一个整数数组 position 和一个整数 m ,请你返回最大化的最小磁力。来源:力扣(LeetCode)链接:https://leetcode-原创 2020-12-07 20:40:38 · 75 阅读 · 0 评论 -
构建最小高度树
1、描述面04.02.给定一个有序整数数组,元素各不相同且按升序排列,编写一个算法,创建一棵高度最小的二叉搜索树。示例:给定有序数组: [-10,-3,0,5,9],一个可能的答案是:[0,-3,9,-10,null,5],它可以表示下面这个高度平衡二叉搜索树:0/ \-3 9/ /-10 5来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/minimum-height-tree-lcci著作权归领扣网络所有。商业转载原创 2020-06-14 22:06:48 · 200 阅读 · 0 评论 -
把数组值一部分变大最接近目标值的值
1、描述给你一个整数数组 arr 和一个目标值 target ,请你返回一个整数 value ,使得将数组中所有大于 value 的值变成 value 后,数组的和最接近 target (最接近表示两者之差的绝对值最小)。如果有多种使得和最接近 target 的方案,请你返回这些整数中的最小值。请注意,答案不一定是 arr 中的数字。示例 1:输入:arr = [4,9,3], target = 10输出:3解释:当选择 value 为 3 时,数组会变成 [3, 3, 3],和为 9 ,这原创 2020-06-14 12:42:54 · 211 阅读 · 0 评论 -
山脉寻值_二分
文章目录1、描述2、思路3、note4、 复杂度5、code5.2、把找峰值写成函数1、描述山脉数组中查找目标值难度困难22(这是一个 交互式问题 )给你一个 山脉数组 mountainArr,请你返回能够使得 mountainArr.get(index) 等于 target 最小 的下标 index 值。如果不存在这样的下标 index,就请返回 -1。何为山脉数组?如果数组 A ...原创 2020-04-29 11:26:04 · 132 阅读 · 0 评论 -
寻找缺失的数据002
文章目录1、描述示例 1:示例 2:2、思路思路二3、notes4、复杂度:5、code1、直接遍历2、二分1、描述面53-2已知一个有序数组,缺失其中的一个元素,只缺失了一个,让求出缺失的是谁,并输出,数组从0,开始示例 1:输入: [0,1,3]输出: 2示例 2:输入: [0,1,2,3,4,5,6,7,9]输出: 82、思路直接遍历一遍数组,和下标不同的输出出来,注意如果是最后一个缺失的话,注意返回值是跳出循环的那个思路二有序二分,二分结构,一个while循环,内层3个分支,原创 2020-06-13 16:47:14 · 379 阅读 · 0 评论