文章目录

  • 1. 题目
  • 2. 解题

1. 题目

给定一个升序整数数组,写一个函数搜索 nums 中数字 target。
如果 target 存在,返回它的下标,否则返回 -1。注意,这个数组的大小是未知的。
你只可以通过 ArrayReader 接口访问这个数组,ArrayReader.get(k) 返回数组中第 k 个元素(下标从 0 开始)。

你可以认为数组中所有的整数都小于 10000。
如果你访问数组越界,ArrayReader.get 会返回 2147483647。

样例 1:
输入: array = [-1,0,3,5,9,12], target = 9
输出: 4
解释: 9 存在在 nums 中,下标为 4样例 2:
输入: array = [-1,0,3,5,9,12], target = 2
输出: -1
解释: 2 不在数组中所以返回 -1注释 :
你可以认为数组中所有元素的值互不相同。
数组元素的值域是 [-9999, 9999]。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/search-in-a-sorted-array-of-unknown-size
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

/*** // This is the ArrayReader's API interface.* // You should not implement it, or speculate about its implementation* class ArrayReader {*   public:*     int get(int index);* };*/class Solution {public:int search(const ArrayReader& reader, int target) {if(target>=10000 || target <= -10000)return -1;int l = 0, r = INT_MAX, mid, val;while(l <= r){mid = l+((r-l)>>1);val = reader.get(mid);if(val > target)r = mid-1;else if(val < target)l = mid+1;elsereturn mid;}return -1;}
};

44 ms 10.1 MB


长按或扫码关注我的公众号,一起加油、一起学习进步!

LeetCode 702. 搜索长度未知的有序数组(二分查找)相关推荐

  1. 二分法 702. 搜索长度未知的有序数组

    二分法 702. 搜索长度未知的有序数组[中等] 给定一个升序整数数组,写一个函数搜索 nums 中数字 target.如果 target 存在,返回它的下标,否则返回 -1.注意,这个数组的大小是未 ...

  2. 搜索长度未知的有序数组

    搜索长度未知的有序数组 给定一个升序整数数组,写一个函数搜索 nums 中数字 target.如果 target 存在,返回它的下标,否则返回 -1.注意,这个数组的大小是未知的.你只可以通过 Arr ...

  3. 【LeetCode - 702】搜索长度未知的有序数组

    文章目录 1.题目描述 2.解题思路 3.解题代码 1.题目描述 2.解题思路   本题的难点在于:如何确定搜索边界   我们一开始先定义边界为 [0, 1],即 left = 0; right = ...

  4. 搜索长度未知的有序数组java_java二分法实现在有序的数组中定位某数在数组中的位置...

    在一个有序的数组中,快速查找某值在有序数组中的位置,有人说这很容易啊,直接一个for循环遍历看看数组中哪个值与它相等,输出索引就ok了.这是个很直接的方法,但又没有想过但数组的长度很长时,你遍历一遍是 ...

  5. 有序数组二分查找最接近的值

    有序数组二分查找最接近的值 问题 思路 代码 循环的终止条件 如何改为求upper_bound 问题 给你一个有序数组,数组里面有正有负,有重复值,再给你扔一个target 数,求这个数组中最接近ta ...

  6. 有序数组二分查找java_详解Java数据结构和算法(有序数组和二分查找)

    一.概述 有序数组中常常用到二分查找,能提高查找的速度.今天,我们用顺序查找和二分查找实现数组的增删改查. 二.有序数组的优缺点 优点:查找速度比无序数组快多了 缺点:插入时要按排序方式把后面的数据进 ...

  7. LeetCode 240. 搜索二维矩阵 II(二分查找 分治)

    文章目录 1. 题目 2. 解题 2.1 从左下角或者右上角开始搜索 2.2 分治算法 1. 题目 编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target.该矩阵具有以 ...

  8. 无序链表(顺序查找)和有序数组(二分查找)-基础实现-符号表(二)-数据结构和算法(Java)

    文章目录 1 无序链表的顺序查找 1.1 无序链表实现 1.2 分析 2 有序数组中的二分查找 2.1 实现 2.2 分析 3 对二分查找的分析 4 总结 5 后记 1 无序链表的顺序查找 1.1 无 ...

  9. LeetCode实战:合并两个有序数组

    题目英文 Given two sorted integer arrays nums1 and nums2, merge nums2 into nums1 as one sorted array. No ...

最新文章

  1. 解决HDFS NameNode启动时Loading edits时间超长的问题(NameNode数据同步机制介绍)
  2. 手机耗电统计app_教你 6 招,解决 iOS13 耗电问题
  3. linux中lvm的缩减
  4. 【华为云分享】机器学习笔记(七) ---- 贝叶斯分类
  5. jaxp与dom4j遍历xml树
  6. python 什么时候后面要加冒号_Python中的每个if条件语句后面都要使用冒号。
  7. myeclipse修改控制台Console面板
  8. 深入浅出Hadoop: 高效处理大数据
  9. 关于自增、自减运算(vc++6.0)
  10. Tomcat源码解析(一):开坑!手把手教你读Tomcat源码。
  11. Carrot2 in action 初步印象
  12. 使用 Java 下载FTP文件
  13. cocos creator pc web端 全屏
  14. curl指定代理_如何使用cURL指定用户代理
  15. 为什么被证明“拖后腿”的苹果Mini手机,仍然还会再次发布新款?
  16. 我涉及的数据可视化的实现技术和工具
  17. TIA博途V17中如何创建和使用VoT应用程序_Web功能
  18. word标题编号消失解决
  19. 电影《寒战1》中的管理知识
  20. Microsoft COCO: Common Objects in Context - 目标检测评估 指标(Detection Evaluation)

热门文章

  1. Flask唯一URL规则--@app.route('/', endpoint='1')
  2. azkaban的操作指南
  3. vs2010中MEX文件建立与调试
  4. 网络请求数据解析时,判断数据是否为空
  5. android studio创建文件,如何在Android Studio中创建File Templates
  6. json字符串和字典类型的相互转换(转载)
  7. 关于有多个Fragment中的textview跑马灯问题
  8. ApplicationContext容器的设计原理
  9. oracle 重建 sys密码文件
  10. 彻底理清重载函数匹配