在陣列中找到乙個區域性最小的位置

2021-08-14 23:14:37 字數 1041 閱讀 4669

【題目】

定義區域性最小的概念。

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...