LeetCode 702. 搜索长度未知的有序数组(二分查找)
生活随笔
收集整理的這篇文章主要介紹了
LeetCode 702. 搜索长度未知的有序数组(二分查找)
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
文章目錄
- 1. 題目
- 2. 解題
1. 題目
給定一個(gè)升序整數(shù)數(shù)組,寫一個(gè)函數(shù)搜索 nums 中數(shù)字 target。
如果 target 存在,返回它的下標(biāo),否則返回 -1。注意,這個(gè)數(shù)組的大小是未知的。
你只可以通過 ArrayReader 接口訪問這個(gè)數(shù)組,ArrayReader.get(k) 返回?cái)?shù)組中第 k 個(gè)元素(下標(biāo)從 0 開始)。
你可以認(rèn)為數(shù)組中所有的整數(shù)都小于 10000。
如果你訪問數(shù)組越界,ArrayReader.get 會(huì)返回 2147483647。
來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/search-in-a-sorted-array-of-unknown-size
著作權(quán)歸領(lǐng)扣網(wǎng)絡(luò)所有。商業(yè)轉(zhuǎn)載請聯(lián)系官方授權(quán),非商業(yè)轉(zhuǎn)載請注明出處。
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
長按或掃碼關(guān)注我的公眾號(hào),一起加油、一起學(xué)習(xí)進(jìn)步!
總結(jié)
以上是生活随笔為你收集整理的LeetCode 702. 搜索长度未知的有序数组(二分查找)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [Kaggle] Digit Recog
- 下一篇: seaborn绘图入门2(distplo