题目描述:

给定一个 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]之间。

题解一:

target 属于闭区间 [left,right]:

class Solution {public int search(int[] nums, int target) {int r = nums.length - 1;int l = 0;while(l <= r){int m = (r+l)/2;if(nums[m] > target){r = m - 1;}if(nums[m] < target){l = m + 1;}if(nums[m] == target){return m;}}return -1;}
}

运行详情:

题解二:

target属于区间 [left,right):

>>其实就是÷2,但是比/2更快!

class Solution {public int search(int[] nums, int target) {int r = nums.length;  // [l,r),nums.length取不上int l = 0;while(l < r){//防止溢出//int m = (r+l)/2; int m = l +((r-l) / 2);int m = l +((r-l) >> 1);if(nums[m] > target){r = m;        }if(nums[m] < target){l = m + 1;}if(nums[m] == target){return m;}}return -1;}
}

运行详情:

其他:

二分法:边界条件要想好,m的定义也要好好考虑

>> 右移

>> 左移

力扣 704.二分查找相关推荐

  1. 代码随想录算法训练营第一天| 704. 二分查找、27. 移除元素。

    704. 二分查找 题目链接:704. 二分查找 - 力扣(LeetCode) 第一天代码跑题了,做出来了但是没有使用二分法,看了讲解,对于左闭右闭和左闭右开还需要多思考,并没有完全理解.那就先总结一 ...

  2. 第一天| 704. 二分查找、27. 移除元素。

    第一天| 704. 二分查找.27. 移除元素. 704.二分查找 1. 题目描述 题目链接:力扣704题 给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函 ...

  3. JS刷题第一天| 704. 二分查找、27. 移除元素

    704. 二分查找 题目链接:力扣 文章讲解:代码随想录 视频讲解:手把手带你撕出正确的二分法 | 二分查找法 | 二分搜索法 | LeetCode:704. 二分查找_哔哩哔哩_bilibili 看 ...

  4. 【代码随想录算法练习】| DAY01 | JavaScript | 数组理论基础,704. 二分查找,27. 移除元素

    详细解析:请看Carl老师的讲解 数组基础理论 下标从 0 开始 内存空间地址是连续的 增删元素时,会涉及其他元素地址的变动 704. 二分查找 | 点击查看力扣对应题目 二分法,也叫折半查找法,这里 ...

  5. 【Day1】数组、704二分查找、27移除元素

    [Day1]数组.704二分查找.27移除元素 数组 704 二分查找 版本一 左闭右闭 即[left, right] 版本二 左闭右开 即[left, right) 27 移除元素 暴力解法 双指针 ...

  6. LeetCode-数组-704. 二分查找

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

  7. LeetCode Algorithm 704. 二分查找

    704. 二分查找 Ideas 这题想考察二分查找的来着. 对不起,真的对不起,作为Python爱好者,实在没忍住,就一行代码解决了. Code Python from typing import L ...

  8. 代码随想录01 | 704二分查找和27移除元素

    目录 一 .二分查找 1 二分查找 2 搜索插入位置 3  在排序数组中查找元素的第一个和最后一个位置 二.移除元素 一 .二分查找 1 二分查找 704 二分查找https://leetcode.c ...

  9. 代码随想录算法训练营第一天 704 二分查找、27 移除元素

    代码随想录算法Day1 | 704. 二分查找.27. 移除元素 Last edited time: April 5, 2023 11:27 AM 数据理论基础 数组是存放在连续内存空间上的相同类型数 ...

最新文章

  1. multinormalNB多项式朴素贝叶斯原理及代码
  2. js中的数组对象排序(方法sort()详细介绍)
  3. PAT (Basic Level) Practice (中文)C++ python 语言实现 —— 题解目录
  4. jvm垃圾回收参数配置
  5. jquery $.get()、$.ajax()与后台servlet交互方法
  6. 那些年我们踩过的一些坑之 ClickHouse
  7. 【学术人生】牛人写SCI常用经典词和常用句型
  8. String与Integer相互转换
  9. 为什么有人月薪5000,还要选它:逆袭都发生在这儿
  10. Form表单只提交field的值,而不进行页面跳转
  11. ISAPI_Rewrite
  12. 微信小程序-微信支付
  13. 常用U盘量产工具下载
  14. Flutter 清除应用缓存
  15. FTP协议是一种用于什么的协议
  16. Android百度地图之定位图层
  17. RNA-seq流程学习笔记(4)-使用FastQC软件对fastq格式的数据进行质量控制
  18. 图片编辑软件_pinta在Linux下安装
  19. 我读Saliency Filters cvpr 2012
  20. 软考高级之系统架构设计师系列【2】考试说明及考点分析

热门文章

  1. 抖音硬控控机房网络还可以这样搭建(抖音硬控控系统机房搭建)
  2. 2023轻薄投影仪首选:极米Z6X Pro入手超值!
  3. 已知x,h求y(信号处理)
  4. java webservice用户名密码_WebService 用户名密码验证
  5. [WTL/ATL]_[Gdiplus]_[绘制虚线并设置破折号空格的宽度]
  6. 20220728使用电脑上的蓝牙和汇承科技的蓝牙模块HC-05配对蓝牙串口传输
  7. webGIS学习(二)探究本质,WebGIS前端地图显示之地图比例尺换算原理 发布于 3 年前 作者 lzxue 7473 次浏览 来自 技术 1.没有豆浆机怎么办? 喝豆浆是我们早晨中基本
  8. 【EndNote】-详细步骤-导入网页/电子文献及外网(IEEE)文献
  9. 时隔14年《头文字D》演员重聚,周杰伦余文乐刘畊宏昆凌同框,唯独少了陈冠希
  10. 疫情可视化part1