leetcode 704 二分查找

简介: leetcode 704 二分查找

704.二分查找


网络异常,图片无法展示
|

#include <iostream>
#include <vector>
using namespace std;
class Solution 
{
public:
    int search(vector<int>& nums, int target) 
    {
        int left=0, right=nums.size();
        int middle = 0;
        while (1)
        {
            middle = (left + right) / 2;
            if (target == nums[middle]) return middle;
            else if (target > nums[middle]) left = middle + 1;
            else right = middle  ;
            if (left >= right) return -1;
        }
    }
};
int main()
{
    vector<int> my_nums = { -1,0,3,5,9,12 };
    int my_target = 12;
    Solution a;
    cout << a.search(my_nums,my_target);
  return 0;
}

二刷

class Solution {
public:
    int search(vector<int>& nums, int target) {
        int result=-1;
        int left=0;
        int right= nums.size()-1;
        while(left <= right)
        {
            int mid = (right + left)/2;
            if(nums[mid]==target) 
            {
                result = mid;
                break;
            }
            else if(nums[mid]>target)
                right = mid-1;
            else if(nums[mid]<target)
                left = mid +1;
        }
        return result;
    }
};
相关文章
|
4月前
leetcode:374. 猜数字大小(二分查找)
leetcode:374. 猜数字大小(二分查找)
30 0
|
4月前
|
算法 测试技术 C#
【二分查找】【区间合并】LeetCode2589:完成所有任务的最少时间
【二分查找】【区间合并】LeetCode2589:完成所有任务的最少时间
|
1月前
|
Python
【Leetcode刷题Python】704. 二分查找
解决LeetCode "二分查找" 问题的Python实现代码。
11 0
|
1月前
|
算法 索引 Python
【Leetcode刷题Python】34. 在排序数组中查找元素的第一个和最后一个位置(二分查找)
解决LeetCode "在排序数组中查找元素的第一个和最后一个位置" 问题的方法。第一种方法是使用两次二分查找,首先找到目标值的最左边界,然后找到最右边界。第二种方法是利用Python的list.index()方法,先正序找到起始位置,再逆序找到结束位置,并给出了两种方法的Python实现代码。
43 0
|
3月前
|
索引
【LeetCode刷题】二分查找:山脉数组的峰顶索引、寻找峰值
【LeetCode刷题】二分查找:山脉数组的峰顶索引、寻找峰值
|
3月前
【LeetCode刷题】专题三:二分查找模板
【LeetCode刷题】专题三:二分查找模板
【LeetCode刷题】专题三:二分查找模板
|
3月前
|
算法 数据可视化 数据挖掘
深入解析力扣162题:寻找峰值(线性扫描与二分查找详解)
深入解析力扣162题:寻找峰值(线性扫描与二分查找详解)
|
4月前
|
算法 索引
【数据结构与算法 | 基础篇】力扣704/35/34:二分查找
【数据结构与算法 | 基础篇】力扣704/35/34:二分查找
|
3月前
【LeetCode刷题】二分查找:寻找旋转排序数组中的最小值、点名
【LeetCode刷题】二分查找:寻找旋转排序数组中的最小值、点名
|
3月前
|
算法
【经典LeetCode算法题目专栏分类】【第6期】二分查找系列:x的平方根、有效完全平方数、搜索二位矩阵、寻找旋转排序数组最小值
【经典LeetCode算法题目专栏分类】【第6期】二分查找系列:x的平方根、有效完全平方数、搜索二位矩阵、寻找旋转排序数组最小值