【題目】
定義區域性最小的概念。
1)arr長度為1時,arr[0]是區域性最小。
2)arr的長度為n(n>1)時,
①如果arr[0]<arr[1],那麼arr[0]是區域性最小;
②如果arr[n-1]<arr[n-2],那麼arr[n-1]是區域性最小;
③如果0<i<n-1,既有arr[i]<arr[i-1],又有arr[i]<arr[i+1],那麼arr[i]是區域性最小
給定無序陣列arr,已知arr中任意兩個相鄰的數都不相等。寫乙個函式,只需返回arr中任意乙個區域性最小出現的位置即可。
【**】
public
static
void
main(string args) ;
system.out.println(getlessindex(arr));//0
intarr1=;
system.out.println(getlessindex(arr1));//0
intarr2=;
system.out.println(getlessindex(arr2));//1
} //在陣列中找到乙個區域性最小的位置
public
static
intgetlessindex(int arr)
if(arr.length==1 || arr[0]1])
if(arr[arr.length-1]2])
//頭尾都不是區域性最小,開始二分查詢
int left=1;
int right=arr.length-2;
int mid=0;
while(left2;
if(arr[mid]>arr[mid-1])
else
if(arr[mid]>arr[mid+1])else
}return left;//直到left=right退出二分查詢,返回left
}
在陣列中找到乙個區域性最小的位置
定義區域性最小的概念。arr長度為1時,arr 0 是區域性最小。arr的長度為n n 1 時,如果arr 0 給定無序陣列arr,已知arr中任何兩個相鄰的數不相等。寫乙個函式,只需返回arr中任何乙個區域性最小出現的位置即可。思路 當arr 0 arr 1 arr n 1 arr n 2 時,箭...
演算法總結之 在陣列中找到乙個區域性最小的位置
給定無序陣列arr,已知arr中任意連個相鄰的數都不相等。寫乙個函式,只需返回arr中任意乙個區域性最小出現的位置 本題利用二分查詢 1 如果arr為空後者長度為0,返回 1 2 如果arr長度為1或者arr 0 3 如果arr n 1 arr n 2 返回n 1 4 如果長度大於2 且 arr的左...
python 在陣列中找到乙個區域性最小的位置
題目如下 利用二分查詢可以讓複雜度降到o logn 空間複雜度o 1 解答如下 python 如下 def getlessindex arr ifnot arr return 1 le len arr if le 1 or arr 1 arr 0 return 0if arr le 1 arr le...