所有題目源**:git位址
題目
假設按照公升序排序的陣列在預先未知的某個點上進行了旋轉。
( 例如,陣列 [0,
1,2,
4,5,
6,7] 可能變為 [4,
5,6,
7,0,
1,2]
)。搜尋乙個給定的目標值,如果陣列中存在這個目標值,則返回它的索引,否則返回 -
1 。你可以假設陣列中不存在重複的元素。
你的演算法時間複雜度必須是 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
方案:兩次二分class
solution
//獲得了節點
//效果是沒有翻轉的時候
if(nums[start]
)//效果是翻轉了的時候
else
if(nums[start]
>target)
return-1
;else
if(nums[0]
<=target)
return
dicsearch
(nums,
0,start,target)
;else
if(nums[nums.length-1]
>=target)
return
dicsearch
(nums,end,nums.length-
1,target)
;else
return-1
;}//二分
public
intdicsearch
(int
nums,
int first,
int last,
int target)
int mid = first+
(last-first)/2
;if(nums[mid]
== target)
return mid;
else
if(nums[mid]
>target)
return
dicsearch
(nums,first,mid,target)
;else
if(nums[mid]
return
dicsearch
(nums,mid,last,target)
;return-1
;}}
複雜度計算 3 3 演算法練習
時間限制 1.0s 記憶體限制 512.0mb 輸入乙個正整數n,輸出n 的值。其中n 12 3 n。n 可能很大,而計算機能表示的整數範圍有限,需要使用高精度計算的方法。使用乙個陣列a來表示乙個大整數a,a 0 表示a的個位,a 1 表示a的十位,依次類推。將a乘以乙個整數k變為將陣列a的每乙個元...
leetcode演算法練習
1014.最佳觀光組合 給定正整數陣列 a,a i 表示第 i 個觀光景點的評分,並且兩個景點 i 和 j 之間的距離為 j i。一對景點 i j 組成的觀光組合的得分為 a i a j i j 景點的評分之和減去它們兩者之間的距離。返回一對觀光景點能取得的最高分。示例 輸入 8,1,5,2,6 輸...
leetcode演算法練習
1111.有效括號的巢狀深度 有效括號字串 定義 對於每個左括號,都能找到與之對應的右括號,反之亦然。詳情參見題末 有效括號字串 部分。巢狀深度 depth 定義 即有效括號字串巢狀的層數,depth a 表示有效括號字串 a 的巢狀深度。詳情參見題末 巢狀深度 部分。給你乙個 有效括號字串 seq...