![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
二分查找
北大人工智能yjt
像写自然语言一样编码.
展开
-
leetcode154_寻找旋转排序数组中的最小值||_二分查找
1. 这一题和leetcode153最大的区别就是可以拥有重复元素.2. 照例使用二分查找, 重点看下else那里,最长的注释部分解释.3. 可以参考二分查找模板,https://blog.csdn.net/qieyuan4083/article/details/102526281, 这是二分查找通用模板.class Solution {public: int fin...原创 2020-02-05 21:11:44 · 93 阅读 · 0 评论 -
leetcode153_寻找旋转排序数组中的最小值_二分查找
1. 这题虽然不是完全有序,但是部分有序,可以试试二分查找方法,并且使用的是数组这样的存储形式,根据下标随机访问,适合二分.class Solution {public: int findMin(vector<int>& nums) { //边界情况. if(nums.size()==1) return nums[0]; ...原创 2020-02-05 19:50:14 · 107 阅读 · 0 评论 -
leetcode81_搜索旋转排序数组2_二分查找
一. 趁热打铁, 这题也是二分查找.class Solution {public: bool search(vector<int>& nums, int target) { int l = 0, r = nums.size() - 1; while (l <= r) { int mid = l + (r - l) / 2; //先讨论简单情...原创 2019-10-12 22:48:38 · 98 阅读 · 0 评论 -
leetcode33_搜索旋转排序数组
一. 这题用二分法, 时间复杂度为O(log(n)).1. 这种题目,先定好边界, 再考虑target的位置.class Solution {public: int search(vector<int>& nums, int target) { //边界条件 int numlen = nums.size(); if (numlen == 0) ...原创 2019-10-12 22:11:51 · 68 阅读 · 0 评论 -
二分查找的变体问题
一. 今天来探讨一下二分查找的变体问题, 可以当做今后写二分查找的模板.二. 普通的二分查找.(有序, 无重复)需要注意:1. 移位的优先级小于加号,所以加括号.2. (start+end)/2 容易溢出, 所以写成start + ((end - start) >> 1).3. 先判断简单情况, 即如果等于target, 则直接returnmid.4...原创 2019-10-12 20:30:10 · 148 阅读 · 0 评论 -
求x的平方根,精确到6位小数
一. 用二分法来一波.....#include <iostream>using namespace std;double sqrtCount(double x, double precision) { if (x < 0) return -1; double low = 1, up = x; if (x > 0 && x < 1...原创 2019-10-11 22:16:46 · 1566 阅读 · 0 评论