難度:簡單
題目描述
解題思路
如果不想複雜的話就很簡單嘛
看起來也不太像是二分的樣子啊
public
intfindmagicindex
(int
nums)
public
intfindhelper
(int
nums,
int left,
int right)
int mid = left +
(right-left)/2
;int leftanswer =
findhelper
(nums, left, mid -1)
;//如果左邊找到了,就返回結果
這種好像只能在公升序的時候有用,但是測試用例裡也沒降序的用例,所以能過
//間隔跳躍查詢
public
intfindmagicindex1
(int
nums)
return-1
;}
比如[2, 2, 2, 4, 5]
下標0的地方是2,那麼直接去下標為2的地方找,因為中間不可能有滿足條件的了
面試題 08 03 魔術索引
魔術索引。在陣列a 0.n 1 中,有所謂的魔術索引,滿足條件a i i。給定乙個有序整數陣列,編寫一種方法找出魔術索引,若有的話,在陣列a中找出乙個魔術索引,如果沒有,則返回 1。若有多個魔術索引,返回索引值最小的乙個。示例1 輸入 nums 0,2,3,4,5 輸出 0 說明 0下標的元素為0 ...
面試題 08 03 魔術索引
魔術索引。在陣列a 0.n 1 中,有所謂的魔術索引,滿足條件a i i。給定乙個有序整數陣列,編寫一種方法找出魔術索引,若有的話,在陣列a中找出乙個魔術索引,如果沒有,則返回 1。若有多個魔術索引,返回索引值最小的乙個。示例1 輸入 nums 0,2,3,4,5 輸出 0說明 0下標的元素為0 示...
力扣刷題筆記 面試題 08 03 魔術索引 C
7 月 31 日簽到題,題目如下 魔術索引。在陣列a 0.n 1 中,有所謂的魔術索引,滿足條件a i i。給定乙個有序整數陣列,編寫一種方法找出魔術索引,若有的話,在陣列a中找出乙個魔術索引,如果沒有,則返回 1。若有多個魔術索引,返回索引值最小的乙個。示例1 輸入 nums 0,2,3,4,5 ...