五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

LeetCodeTop100_33. 搜索旋轉(zhuǎn)排序數(shù)組

2023-03-14 10:05 作者:方貓zzz  | 我要投稿

整數(shù)數(shù)組 nums 按升序排列,數(shù)組中的值 互不相同 。


在傳遞給函數(shù)之前,nums 在預(yù)先未知的某個(gè)下標(biāo) k(0 <= k < nums.length)上進(jìn)行了 旋轉(zhuǎn),使數(shù)組變?yōu)?[nums[k], nums[k+1], ..., nums[n-1], nums[0], nums[1], ..., nums[k-1]](下標(biāo) 從 0 開始 計(jì)數(shù))。例如, [0,1,2,4,5,6,7] 在下標(biāo) 3 處經(jīng)旋轉(zhuǎn)后可能變?yōu)?[4,5,6,7,0,1,2] 。


給你 旋轉(zhuǎn)后 的數(shù)組 nums 和一個(gè)整數(shù) target ,如果 nums 中存在這個(gè)目標(biāo)值 target ,則返回它的下標(biāo),否則返回 -1 。


你必須設(shè)計(jì)一個(gè)時(shí)間復(fù)雜度為 O(log n) 的算法解決此問題。


?


示例 1:


輸入:nums = [4,5,6,7,0,1,2], target = 0

輸出:4

示例 2:


輸入:nums = [4,5,6,7,0,1,2], target = 3

輸出:-1

示例 3:


輸入:nums = [1], target = 0

輸出:-1


因?yàn)橐猯gn的復(fù)雜度,所以想到二分法;

由提供的旋轉(zhuǎn)的條件可以發(fā)現(xiàn),如果從中間砍一刀變成兩個(gè)序列的話,必有一個(gè)是有序的;

判斷一個(gè)值是否在無(wú)序區(qū)間需要遍歷,而判斷一個(gè)值是否在有序區(qū)間卻只需要將target與兩端進(jìn)行比較即可;

而逆轉(zhuǎn)數(shù)組的無(wú)序段和有序段的一個(gè)顯著標(biāo)志就是段頭是否小于段尾;

因此本題的算法應(yīng)該是將數(shù)組不斷二分,在每一次二分的過程中,先找到有序區(qū)間, 然后若通過對(duì)比發(fā)現(xiàn)target在有序區(qū)間,那另一端可以直接舍棄;否則就完全可以將有序區(qū)間舍棄。

這樣就可以加速二分法;


代碼如下:



LeetCodeTop100_33. 搜索旋轉(zhuǎn)排序數(shù)組的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
北流市| 宿松县| 黄浦区| 赤峰市| 育儿| 吴堡县| 辛集市| 成安县| 昌吉市| 泾源县| 乌恰县| 酒泉市| 墨竹工卡县| 烟台市| 马公市| 榆中县| 吴旗县| 浪卡子县| 介休市| 雅安市| 永丰县| 辽阳市| 都兰县| 治县。| 历史| 克什克腾旗| 嘉义县| 阜新市| 南平市| 东乡族自治县| 丘北县| 黄石市| 南投市| 吕梁市| 北海市| 长顺县| 贵州省| 梁河县| 日土县| 阿巴嘎旗| 繁峙县|