704. 二分查找

给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1

示例 1:

复制代码
输入: nums = [-1,0,3,5,9,12], target = 9
输出: 4
解释: 9 出现在 nums 中并且下标为 4

示例 2:

复制代码
输入: nums = [-1,0,3,5,9,12], target = 2
输出: -1
解释: 2 不存在 nums 中因此返回 -1

提示:

  1. 你可以假设 nums 中的所有元素是不重复的。
  2. n 将在 [1, 10000]之间。
  3. nums 的每个元素都将在 [-9999, 9999]之间。
cpp 复制代码
class Solution {
public:
    int search(vector<int>& nums, int target) {
//似乎不需要二分查找吧
        int n=nums.size();
        for(int i=0;i<n;i++){
            if(nums[i]==target){
                return i;
                break;
            }
        }
        return -1;
    }
};
cpp 复制代码
class Solution {
public:
    int search(vector<int>& nums, int target) {
//还是用二分查找吧
        int n=nums.size();
        int l=0,r=n-1,m;
        while(l<=r){
            m=(l+r)/2;
            if(nums[m]==target){
                return m;
            }
            else if(nums[m]>target){
                r=m-1;
            }
            else{
                l=l+1;
            }
        }
        return -1;
    }
};
相关推荐
2401_841495649 分钟前
【数据结构】最短路径的求解
数据结构·动态规划·贪心·ipython·最短路径·迪杰斯特拉算法·弗洛伊德算法
西安同步高经理10 分钟前
秒表实现自动化测量助力时频测量行业发展、秒表检定仪、毫秒表测量仪
人工智能·算法
夏幻灵16 分钟前
C++ 里 什么时候不用指针,而选择值拷贝/深拷贝 ?
开发语言·c++·算法
这猪好帅18 分钟前
【算法】动态规划 - 数字三角形模型
算法·动态规划
yong999020 分钟前
基于小波分析与粒子群算法的电网潮流优化实现(MATLAB)
开发语言·算法·matlab
tgethe23 分钟前
Java 数组(Array)笔记:从语法到 JVM 内核
java·数据结构
Christo326 分钟前
2024《Three-way clustering: Foundations, survey and challenges》
人工智能·算法·机器学习·数据挖掘
艾醒33 分钟前
大模型原理剖析——解耦RoPE(旋转位置编码)的基本原理
算法
多看书少吃饭36 分钟前
从 ScriptProcessor 到 AudioWorklet:Electron 桌面端录音实践总结
前端·javascript·electron
@淡 定37 分钟前
JVM内存区域划分详解
java·jvm·算法