class
solution1
int res = array[0]
;//遍歷陣列,找出最小值
for(
int i =
1; i < array.length; i++)}
return res;
}}
class
solution2
if(nums.length ==
1|| nums[nums.length -1]
> nums[0]
)int p1 =0;
//定義頭部指標
int p2 = nums.length -1;
//定義尾部指標
int mid = p1;
//定義中部指標
while
(p1 < p2)
int mid =
(p1 + p2)/2
;if(array[mid]
<= array[p1])if
(array[mid]
>= array[p2]
}return nums[mid];}
}
class
solution3
if(nums.length ==
1|| nums[nums.length -1]
> nums[0]
)int p1 =0;
//定義頭部指標
int p2 = nums.length -1;
//定義尾部指標
int mid = p1;
//定義中部指標
while
(nums[p1]
>
= nums[p2]
)int mid =
(p1 + p2)/2
;/******************************************/
/******************修改處*****************/
if(nums[p1]
== nums[p2]
&& nums[mid]
== nums[p1]
)return result;}}
if(array[mid]
<= array[p1])if
(array[mid]
>= array[p2]
}return nums[mid];}
}
11 旋轉陣列的最小數字
把乙個陣列最開始的若干個元素搬到陣列的末尾,我們稱之為陣列的旋轉。輸入乙個非遞減排序的陣列的乙個旋轉,輸出旋轉陣列的最小元素。例如陣列為的乙個旋轉,該陣列的最小值為1。我的 二分法 class min defsolution self,nums a nums 0 b nums 1 iflen num...
11 旋轉陣列的最小數字
二分法搜尋方法 include using namespace std intmin int numbers,int length int index1 0 int index2 length 1 int indexmid index1 while numbers index1 numbers in...
11 旋轉陣列的最小數字
把乙個陣列最開始的若干個元素搬到陣列的末尾,我們稱之為陣列的旋轉。輸入乙個遞增排序的陣列的乙個旋轉,輸出旋轉陣列的最小元素。例如,陣列 3,4,5,1,2 為 1,2,3,4,5 的乙個旋轉,該陣列的最小值為1。輸入 3,4,5,1,2 輸出 1 輸入 2,2,2,0,1 輸出 0 此題很容易想到順...