#二分
偶尔写博客
偶尔记录下自己的学习情况,我很菜。
展开
-
旋转数组的最小数字(二分查找)
把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如,数组 [3,4,5,1,2] 为 [1,2,3,4,5] 的一个旋转,该数组的最小值为1。 示例 1: 输入:[3,4,5,1,2] 输出:1 示例 2: 输入:[2,2,2,0,1] 输出:0 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/xuan-zhuan-shu-zu-de-zui-xiao-shu-.原创 2020-07-22 23:18:28 · 193 阅读 · 0 评论 -
两数之和 II - 输入有序数组(二分查找 / 双指针)
给定一个已按照升序排列 的有序数组,找到两个数使得它们相加之和等于目标数。 函数应该返回这两个下标值 index1 和 index2,其中 index1 必须小于 index2。 说明: 返回的下标值(index1 和 index2)不是从零开始的。 你可以假设每个输入只对应唯一的答案,而且你不可以重复使用相同的元素。 示例: 输入: numbers = [2, 7, 11, 15], target = 9 输出: [1,2] 解释: 2 与 7 之和等于目标数 9 。因此 ind...原创 2020-07-20 11:00:08 · 198 阅读 · 0 评论 -
搜索插入位置(裸二分)
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 你可以假设数组中无重复元素。 示例 1: 输入: [1,3,5,6], 5 输出: 2 示例 2: 输入: [1,3,5,6], 2 输出: 1 示例 3: 输入: [1,3,5,6], 7 输出: 4 示例 4: 输入: [1,3,5,6], 0 输出: 0 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/se原创 2020-07-17 17:15:29 · 122 阅读 · 0 评论 -
将有序数组转换为二叉搜索树(二分+递归)
将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。 本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。 示例: 给定有序数组: [-10,-3,0,5,9], 一个可能的答案是:[0,-3,9,-10,null,5],它可以表示下面这个高度平衡二叉搜索树: 0 / \ -3 9 / / -10 5 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems...原创 2020-07-03 13:28:49 · 150 阅读 · 0 评论 -
长度最小的子数组(暴力/动态规划)
给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的连续子数组,并返回其长度。如果不存在符合条件的连续子数组,返回 0。 示例: 输入: s = 7, nums = [2,3,1,2,4,3] 输出: 2 解释: 子数组 [4,3] 是该条件下的长度最小的连续子数组。 进阶: 如果你已经完成了O(n) 时间复杂度的解法, 请尝试 O(n log n) 时间复杂度的解法。 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/原创 2020-06-28 15:53:16 · 334 阅读 · 0 评论 -
一元三次方程(二分查找)
之前做过一到这种题目,但忘记把它写入博客,这里记录一下,代码和题目要求来自于次 #include <stdio.h> #include <math.h> int main() { double a = -10; double b = 10; double c; double f1, f2, f3; do { f1 = 2*pow(a, 3) - 4*pow(a, 2) + 3*a - 6; // 得出左端项的值f1 f2 = 2*pow(b, 3)原创 2020-05-12 10:55:16 · 500 阅读 · 0 评论