二分查找力扣702

简介: 二分查找力扣702

二分查找力扣702

左闭右闭方法and左闭右开方法

#include<iostream>
#include<vector>
using namespace std;
vector<int>a;
//区间是左闭右闭
int search1(vector<int>& nums,int targer)
{
    int left = 0;
    int right = nums.size() - 1;
    while(left <= right)
    {
        int middle = left + (right - left)/2;
        if(nums[middle] < targer)
        {
            left = middle + 1;
        }
        else if(nums[middle] > targer)
        {
            right = middle - 1;
        }
        else
        {
            return middle;
        }
    }
    return -1;
}
// 区间是左闭右开
int search2(vector<int>& nums,int targer)
{
    int left = 0;
    int right = nums.size()-1;
    while(left < right)
    {
        int middle = left + (right - left)/2;
        if(nums[middle] < targer)
        {
            left = middle + 1;
        }
        else if (nums[middle] > targer)
        {
            right = middle;
        }
        else
        {
            return middle;
        }
    }
    return -1;
}
int main()
{
    int n;
    while(1)
    {
        cin >> n;
        a.push_back(n);
        if(cin.get()=='\n')
        {
            break;
        }
    }
    int tag;
    cin >> tag;
    int res; 
    // res = search1(a,tag);
    res = search2(a,tag);
    cout << res ;
    return 0;
}
目录
相关文章
|
7月前
leetcode:374. 猜数字大小(二分查找)
leetcode:374. 猜数字大小(二分查找)
42 0
|
7月前
|
算法 测试技术 C#
【二分查找】【区间合并】LeetCode2589:完成所有任务的最少时间
【二分查找】【区间合并】LeetCode2589:完成所有任务的最少时间
|
2月前
【LeetCode 01】二分查找总结
【LeetCode 01】二分查找总结
17 0
|
4月前
|
Python
【Leetcode刷题Python】704. 二分查找
解决LeetCode "二分查找" 问题的Python实现代码。
20 0
|
4月前
|
算法 索引 Python
【Leetcode刷题Python】34. 在排序数组中查找元素的第一个和最后一个位置(二分查找)
解决LeetCode "在排序数组中查找元素的第一个和最后一个位置" 问题的方法。第一种方法是使用两次二分查找,首先找到目标值的最左边界,然后找到最右边界。第二种方法是利用Python的list.index()方法,先正序找到起始位置,再逆序找到结束位置,并给出了两种方法的Python实现代码。
68 0
|
6月前
|
索引
【LeetCode刷题】二分查找:山脉数组的峰顶索引、寻找峰值
【LeetCode刷题】二分查找:山脉数组的峰顶索引、寻找峰值
|
6月前
【LeetCode刷题】专题三:二分查找模板
【LeetCode刷题】专题三:二分查找模板
【LeetCode刷题】专题三:二分查找模板
|
6月前
|
算法 数据可视化 数据挖掘
深入解析力扣162题:寻找峰值(线性扫描与二分查找详解)
深入解析力扣162题:寻找峰值(线性扫描与二分查找详解)
|
7月前
|
算法 索引
【数据结构与算法 | 基础篇】力扣704/35/34:二分查找
【数据结构与算法 | 基础篇】力扣704/35/34:二分查找
|
6月前
【LeetCode刷题】二分查找:寻找旋转排序数组中的最小值、点名
【LeetCode刷题】二分查找:寻找旋转排序数组中的最小值、点名