您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了java如何在排序數組中查找元素的第一個和最后一個位置,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶大家一起來研究并學習一下“java如何在排序數組中查找元素的第一個和最后一個位置”這篇文章吧。
給定一個按照升序排列的整數數組 nums
,和一個目標值 target
。找出給定目標值在數組中的開始位置和結束位置。
你的算法時間復雜度必須是 O(log n) 級別。
如果數組中不存在目標值,返回 [-1, -1]
。
示例 1:
輸入: nums = [, target = 8 輸出: [3,4]
示例 2:
輸入: nums = [, target = 6 輸出: [-1,-1]
搜索旋轉排序數組
解析:
如果沒有旋轉,他是個升序的數組,我們可以使用二分法查找很快找出結果,但這里的數組出現了旋轉,所以我們不能直接使用二分法來查找,不過我們可以來改一下。我們知道在某個點上旋轉之后,在這個點之前的都是大于這個點之后的,如果中間值和查找值都小于數組的第一個元素,那么說明中間值和查找值都在這個旋轉點的后面,直接在后面找就行了,前面的可以直接忽略了。否則中間值和查找值最少有一個在這個旋轉點之前,然后再接著判斷。然后下面會有兩種情況,第一種是中間值在前面,查找值在后面,那么這種情況就繼續往后找lo=mid+1,第二種情況是查找值和中間值都在前面,那么只需要查找前面部分就可以了,
Java的基本數據類型分為:1、整數類型,用來表示整數的數據類型。2、浮點類型,用來表示小數的數據類型。3、字符類型,字符類型的關鍵字是“char”。4、布爾類型,是表示邏輯值的基本數據類型。
以上就是關于“java如何在排序數組中查找元素的第一個和最后一個位置”的內容,如果該文章對您有所幫助并覺得寫得不錯,勞請分享給您的好友一起學習新知識,若想了解更多相關知識內容,請多多關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。