搜尋旋轉排序陣列》
當nums[midddle]>nums[left]的時候可以發現在[left,midle]中陣列是增序的,因此若此時nums[left]<=target<=nums[rightt]
則targe一定落在[left,middle]的區間,否則落在另外的乙個區間;同理若nums[middle]package com.zj.aaaray.binarysearch;
import com.zj.aaaray.problem1;
/** * @auther jian zhou
* @date 2020/7/19
* 搜尋旋轉排序陣列
*/public
class
problem33
else
}else
else}}
if(nums[left]
==target)
return left;
return-1
;}//另外一種判斷if()的情況
//這種是我自己想的,情況比較複雜一點
public
intsearch2
(int
nums,
int target)
else
}else
else}}
if(nums[left]
==target)
return left;
return-1
;}public
static
void
main
(string[
] args)
; problem33 problem33 =
newproblem33()
;int i1 = problem33.
search
(nums,4)
;int i2 = problem33.
search
(nums,5)
;int i3 = problem33.
search
(nums,6)
;int i4 = problem33.
search
(nums,0)
;int i5= problem33.
search
(nums,1)
;int i6 = problem33.
search
(nums,2)
;int i7 = problem33.
search
(nums,3)
; system.out.
println
(i1)
; system.out.
println
(i2)
; system.out.
println
(i3)
; system.out.
println
(i4)
; system.out.
println
(i5)
; system.out.
println
(i6)
; system.out.
println
(i7);}
}
leetcode33 搜尋旋轉排列陣列
假設按照公升序排序的陣列在預先未知的某個點上進行了旋轉。例如,陣列 0,1,2,4,5,6,7 可能變為 4,5,6,7,0,1,2 搜尋乙個給定的目標值,如果陣列中存在這個目標值,則返回它的索引,否則返回 1 你可以假設陣列中不存在重複的元素。你的演算法時間複雜度必須是 o log n 級別。示例...
LeetCode 33 搜尋旋轉排序陣列
假設按照公升序排序的陣列在預先未知的某個點上進行了旋轉。例如,陣列 0,1,2,4,5,6,7 可能變為 4,5,6,7,0,1,2 搜尋乙個給定的目標值,如果陣列中存在這個目標值,則返回它的索引,否則返回 1。你可以假設陣列中不存在重複的元素。你的演算法時間複雜度必須是 o log n 級別。示例...
leetcode 33 搜尋旋轉排序陣列
leetcode 33.搜尋旋轉排序陣列 假設按照公升序排序的陣列在預先未知的某個點上進行了旋轉。例如,陣列 0,1,2,4,5,6,7 可能變為 4,5,6,7,0,1,2 搜尋乙個給定的目標值,如果陣列中存在這個目標值,則返回它的索引,否則返回 1 你可以假設陣列中不存在重複的元素。你的演算法時...