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

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

size ati 輸入 元素 new 找到 arc bre code

示例 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}; }

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