在排序數組中查找元素的第一個和最后一個位置(給定一個按照升序排列的整數數組 nums,和一個目標值 target。找出給定目標值在數組中的開始位置和結束位置。)


示例 1:
輸入: nums = [5,7,7,8,8,10], target = 8
輸出: [3,4]
示例 2:
輸入: nums = [5,7,7,8,8,10], target = 6
輸出: [-1,-1]

思路:定義兩個變量start和end,分別指向數組首元素和末尾元素,當start<end時,我們從下標start開始查找與target值相等的,找到退出循環,用相同的方法從后給前找,找到退出循環,並且返回[start,end],沒有找到返回[-1,-1];

代碼如下:

public static int[] searchRange(int[] nums,int target) { int start = 0; int end = nums.length - 1; while(start <= end) { if(nums[start] == target) { break; } start++; } while(start <= end) { if(nums[end] == target) { return new int[] {start,end}; } end--; } return new int[] {-1,-1}; }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



猜您在找 Leetcode練習(Python):數組類:第34題:給定一個按照升序排列的整數數組 nums,和一個目標值 target。找出給定目標值在數組中的開始位置和結束位置。 你的算法時間復雜度必須是 O(log n) 級別。 如果數組中不存在目標值,返回 [-1, -1]。 給定一個排序數組和一個目標值,在數組中找到目標值,並返回其索引。如果目標值不存在於數組中,返回它將會被按順序插入的位置。 Leetcode練習(Python):數組類:第35題:給定一個排序數組和一個目標值,在數組中找到目標值,並返回其索引。如果目標值不存在於數組中,返回它將會被按順序插入的位置。 你可以假設數組中無重復元素。 對於一個有序數組,我們通常采用二分查找的方式來定位某一元素,請編寫二分查找的算法,在數組中查找指定元素。 給定一個整數數組A及它的大小n,同時給定要查找的元素val,請返回它在數組中的位置(從0開始),若不存在該元素,返回-1。若該元素出現多次,請返回第一次出現的位置。 [LeetCode] 34. Find First and Last Position of Element in Sorted Array 在有序數組中查找元素的第一個和最后一個位置 Python編程題52--在排序列表中查找元素的第一個和最后一個位置 [LeetCode] 1095. Find in Mountain Array 山形數組中查找目標值 C語言:假定輸入的字符串只包含字母和*號,fun函數:除了尾部的*號以外,將字符的其他*號進行全部刪除,形參p已經指向字符串中最后一個字母。-利用折半查找整數m在有序數組中的位置,若找到,返回下標值,否則返回-1。 給定一個包含 n 個整數的數組 nums,判斷 nums 中是否存在三個元素 a,b,c ,使得 a + b + c = 0 ?找出所有滿足條件且不重復的三元組。 JS 數組中找到與目標值最接近的數字,記一次工作中關於二分查找的算法優化
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM