LeetCode 702. 搜索长度未知的有序数组(二分查找)
生活随笔
收集整理的這篇文章主要介紹了
LeetCode 702. 搜索长度未知的有序数组(二分查找)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 1. 題目
- 2. 解題
1. 題目
給定一個升序整數數組,寫一個函數搜索 nums 中數字 target。
如果 target 存在,返回它的下標,否則返回 -1。注意,這個數組的大小是未知的。
你只可以通過 ArrayReader 接口訪問這個數組,ArrayReader.get(k) 返回數組中第 k 個元素(下標從 0 開始)。
你可以認為數組中所有的整數都小于 10000。
如果你訪問數組越界,ArrayReader.get 會返回 2147483647。
來源:力扣(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. 搜索长度未知的有序数组(二分查找)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [Kaggle] Digit Recog
- 下一篇: seaborn绘图入门2(distplo