多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > 互聯網 > LeetCode Search in Rotated Sorted Array

LeetCode Search in Rotated Sorted Array

來源:程序員人生   發布時間:2014-12-16 08:11:56 閱讀次數:1906次

Suppose a sorted array is rotated at some pivot unknown to you beforehand.

(i.e., 0 1 2 4 5 6 7 might become 4 5 6 7 0 1 2).

You are given a target value to search. If found in the array return its index, otherwise return ⑴.

You may assume no duplicate exists in the array.

思路分析:這題一樣考察2分查找,但是是在rotation以后的數組中進行2分查找。這題的特點是,每次2分后,最少有1半是有序的,另外一半是無序的(遭到了rotation的影響)。所以要利用這1特性,通過比較target和有序的那半邊數組的最小數和最大數,來決定l和m的更新規則。具體而言

1.如果target = A[m] 返回m

2 如果target 不等于A[m]

2.1 如果A[m] < A[r],說明A[m...r]有序,沒有收到rotation影響,可以判斷target是不是在A[m...r]范圍內,如果是更新l=m+1;否則更新r=m⑴

2.2 如果A[m] >= A[r],說明A[l...m]有序,沒有收到rotation影響,可以判斷target是不是在A[l...m]范圍內,如果是更新r=m⑴;否則更新l=m+1

所以利用每次依然有序的半邊數組,我們依然可以進行2分查找,更新l和r,每次縮小1半的搜索范圍,時間復雜度O(log(n)),空間復雜度O(1),只有常數級別的額外空間。注意判斷target是不是在A[m...r]范圍和target是不是在A[l...m]范圍內的時候,要斟酌target == A[r]和target == A[l]的情況,2分查找的實現等號情況的斟酌要特別謹慎。

AC 時間:5min。

AC Code

public class Solution { public int search(int[] A, int target) { //02:46 if(A == null || A.length == 0) return ⑴; int l = 0; int r = A.length - 1; while(l <= r){ int m = (l + r) / 2; if(target == A[m]) return m; else{ if(A[m] < A[r]){ //m ... r is sorted if(target <= A[r] && target > A[m]) { l = m + 1; } else { r = m - 1; } } else { //l ... m is sorted if(target >= A[l] && target < A[m]){ r = m ⑴; } else { l = m + 1; } } } } return ⑴; } //02:51 }


生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 亚洲欧美日韩色 | 在线观看亚洲精品专区 | 亚洲日韩欧美综合 | 3344成年站福利在线视频免费 | 欧美视频三区 | 狠狠操视频网 | 欧美亚洲天堂网 | 在线观看亚洲人成网站 | 波多野结衣在线资源 | 能免费看的黄色网址 | 亚洲精品乱码久久久久久 | www.精品 | 欧美hdxxxx | 亚洲人成网址在线播放a | 久久经典免费视频 | 免费播放成人生活片 | 有码视频在线观看 | 久久 精品 一区二区 | 网站午夜 | 伊人网在线播放 | 九九欧美 | 久操网在线 | 日本中文字幕免费 | 成人欧美一区二区三区视频xxx | 女人l8毛片a一级毛片 | 久草在线观看首页 | 亚洲精品综合一区二区三区在线 | 亚洲日本在线免费观看 | 最新69成人精品毛片 | 欧美日韩aa一级视频 | 国产麻豆免费观看 | 精品国产一区二区三区免费看 | 欧美乱xxxxxxxxx| 男人午夜网站 | 欧美国产亚洲18 | 亚洲精品国产精品一区二区 | 97午夜理伦片在线影院 | 一级毛片不卡片免费观看 | 插插网站| 纯欧美一级毛片免费 | 日韩 欧美 综合 |