二分

作者: 徐振杰 | 来源:发表于2019-05-10 22:37 被阅读0次

供暖器

class Solution {
public:
    int findRadius(vector<int>& houses, vector<int>& heaters) {
        //先将供暖器排序,之后为每个屋子找到最近的供暖器
        heaters.push_back(INT_MIN),heaters.push_back(INT_MAX);
        
        sort(heaters.begin(),heaters.end());
        
        int res = 0;
        
        for(int i=0;i<houses.size();i++){
            
            int l=0,r = heaters.size()-1;
            while(l-r){
                int mid = l+r>>1;
                if(heaters[mid]>houses[i]) r = mid;
                else l = mid+1;
            }
            res = max(res,(int)min(heaters[l]-0ll-houses[i],houses[i]-0ll-heaters[l-1]));
        }
        return res;
    }
};

寻找峰值

//如果左边的比右边的值要小的话,那么在右边就会必有一个值是峰值
class Solution {
public:
    int findPeakElement(vector<int>& nums) {
        
        if(nums.size()==1||nums[0]>nums[1]) return 0;
        int l = 1,r = nums.size()-1;
        while(l-r){
            int mid = l+r+1>>1;
            if(nums[mid]>nums[mid-1]) l = mid;
            else r = mid-1;
        }
        return l;
    }
};

相关文章

  • Algorithm进阶计划 -- 二分搜索

    二分搜索二分搜索模板二分搜索运用 1. 二分搜索模板 二分搜索(二分查找)也称折半查找(Binary Search...

  • php 二分查找法

    递归二分 循环二分

  • 算法-二分搜索算法

    算法:二分搜索算法(折半查找算法)时间复杂度: 二分搜索算法概述 二分搜索算法伪代码 二分搜索算法实现 二分搜索算...

  • 数据结构和算法--二分查找

    二分查找 二分查找的思想 二分查找(Binary Search)算法,也叫折半查找算法。 二分查找针对的是一个有序...

  • 二分算法-LeetCode 69

    二分算法-LeetCode 69 二分算法 二分算法模板, 二分搜索即搜索一个数,如果存在,返回其索引,否则返回-...

  • 二分查找

    [TOC] 二分查找的基础模板 二分查找靠左的Index基础模板 二分查找靠右的Index基础模板 二分查找插入t...

  • 二分查找法

    二分查找法 二分查找法(递归)

  • 二分查找(递归、非递归)

    二分查找(递归) 二分查找(非递归)

  • 二分查找(递归、非递归)

    二分查找(递归) 二分查找(非递归)

  • 二分之一

    二分之一,这是一个怎样的数字呢?人生的二分之一、婚姻的二分之一、工作的二分之一、青年的二分之一、大学的二分...

网友评论

      本文标题:二分

      本文链接:https://www.haomeiwen.com/subject/bwazoqtx.html