
二分法
每天学一点!
时刻保持对知识的热情!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
69.x 的平方根
题目描述 实现int sqrt(int x)函数。计算并返回x的平方根,其中x是非负整数。由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。 示例 示例 1: 输入: 4 输出: 2 示例 2: 输入: 8 输出: 2 说明: 8 的平方根是 2.82842..., 由于返回类型是整数,小数部分将被舍去。 思路 二分思路。 代码...原创 2018-11-28 18:59:12 · 254 阅读 · 0 评论 -
34. 在排序数组中查找元素的第一个和最后一个位置
题目描述 给定一个按照升序排列的整数数组nums,和一个目标值target。找出给定目标值在数组中的开始位置和结束位置。 你的算法时间复杂度必须是O(logn) 级别。如果数组中不存在目标值,返回[-1, -1]。 示例 1: 输入: nums = [5,7,7,8,8,10], target = 8 输出: [3,4] 示例2: 输入: nums = [5,7,7,8,...原创 2019-05-19 11:51:35 · 203 阅读 · 0 评论 -
33. 搜索旋转排序数组
题目描述 假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组[0,1,2,4,5,6,7]可能变为[4,5,6,7,0,1,2])。搜索一个给定的目标值,如果数组中存在这个目标值,则返回它的索引,否则返回-1。 你可以假设数组中不存在重复的元素。你的算法时间复杂度必须是O(logn) 级别。 示例 1: 输入: nums = [ 4, 5, 6, 7, 0...原创 2019-05-17 21:24:09 · 158 阅读 · 0 评论 -
数字在排序数组中出现的次数
题目描述 统计一个数字在排序数组中出现的次数。 思路 二分查找。 代码 class Solution { public: int count; int GetNumberOfK(vector<int> data ,int k) { count = 0; binarySearch(data, k, 0, data.s...原创 2019-04-28 15:42:36 · 114 阅读 · 0 评论 -
4. 寻找两个有序数组的中位数
题目描述 给定两个大小为 m 和 n 的有序数组nums1 和nums2。 请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为O(log(m + n))。 你可以假设nums1和nums2不会同时为空。 示例 示例 1: nums1 = [1, 3] nums2 = [2] 则中位数是 2.0 示例 2: nums1 = [1, 2] nums2 = ...原创 2019-07-19 15:31:59 · 124 阅读 · 0 评论 -
35.搜索插入位置
题目描述 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 你可以假设数组中无重复元素。 示例 输入: [1,3,5,6], 5 输出: 2 思路1 直接遍历,时间复杂度为O(n)。 代码1 class Solution { public: int searchInsert(ve...原创 2018-11-16 21:18:28 · 231 阅读 · 0 评论