假設乙個單調遞增的陣列裡的每個元素都是整數並且是唯一的。
請程式設計實現乙個函式找出陣列中任意乙個數值等於其下標的元素。
例如,在陣列[-3, -1, 1, 3, 5]中,數字3和它的下標相等。
樣例
輸入:[-3, -1, 1, 3, 5]
輸出:3
注意:如果不存在,則返回-1。
由於陣列是單調遞增的,所以可以用二分查詢。通過比較數值和下標的大小關係來二分查詢,如果當前位置的數值比下標**明目標在不包括當前位置的右側,否則說明在包括當前位置的左側。返回時要判斷一下,如果找到的位置和該位置上的數值相等則返回,如果不相等說明不存在這樣的元素,那麼返回-1。
class solution
return nums[l] == l ? l : -1;
}};
陣列中數值和下標相等的元素
假設乙個單調遞增的陣列裡的每個元素都是整數並且是唯一的,請程式設計實現乙個函式,找出陣列中任意乙個數值等於其下標的元素。例如在陣列中,數字3和它的下標相等。從左到右遍歷陣列,逐個判斷數字和下標是否相同,時間複雜度為o n 使用二分查詢,如果數字大於下標在陣列左邊查詢 數字小於下標在陣列右邊查詢。pu...
陣列中數值和下標相等的元素(二分查詢)
題目描述 假設乙個單調遞增的陣列中的每個元素都是整數並且是唯一的。請程式設計實現乙個函式,找出陣列中任意乙個數值等於其下標的元素,例如在陣列 3,1,1,3,5 中,3和他的下標相等。採用二分查詢 如果陣列中的數字小於下標,由於下標是 1的遞減數列,但是陣列中的元素差值大於等於 1,因此左邊的不可能...
輸出陣列前三大的數值和下標
輸出陣列前三大的數值和下標 package wanshang317 public class 第二大陣列下標 列印出該陣列前三大 int arr int max arr 0 int secmax 0 int index 0 int secindex 0 int thmax 0 int thindex...