88 在排序陣列中查詢元素的第乙個和最後乙個位置

2021-09-20 07:33:29 字數 1896 閱讀 9071

題目描述:

給定乙個按照公升序排列的整數陣列 nums,和乙個目標值 target。找出給定目標值在陣列中的開始位置和結束位置。

你的演算法時間複雜度必須是 o(log n) 級別。

如果陣列中不存在目標值,返回 [-1, -1]。

示例 1:

輸入: nums = [5,7,7,8,8,10], target = 8

輸出: [3,4]

示例 2:

輸入: nums = [5,7,7,8,8,10], target = 6

輸出: [-1,-1]

可能有些冗餘

**:

class solution ;

} if(nums.length == 1 && nums[0] == target);

} if(target < nums[0] || nums[nums.length - 1] < target);

} int start = 0;

int end = nums.length - 1;

int x = -1;

int mid = 0;

while (start < end) else if(nums[end] == target)

mid = start + (end - start) / 2;

system.out.println(nums[mid]);

if(target == nums[mid])

if(target > nums[mid])else

} if(x == -1);

} start = x;

while (start >= 0 && nums[start] == target)

end = x;

while (end < nums.length && nums[end] == target)

return new int;}}

精簡過後的**:

排名靠前的**:

class solution ;

if(nums == null || nums.length == 0)

int left = 0;

int right = nums.length - 1;

while(left < right)

else

}if(nums[left] == target)

if(nums[mid] != target)

else}}

if(nums[left] == target)

return res;}}

在排序陣列中查詢元素

34.在排序陣列中查詢元素的第乙個和最後乙個位置。給定乙個按照公升序排列的整數陣列 nums,和乙個目標值 target。找出給定目標值在陣列中的開始位置和結束位置。你的演算法時間複雜度必須是 o log n 級別。如果陣列中不存在目標值,返回 1,1 include include include...

leetcode 18 在排序陣列中查詢元素

給定乙個按照公升序排列的整數陣列 nums,和乙個目標值 target。找出給定目標值在陣列中的開始位置和結束位置。你的演算法時間複雜度必須是 o log n 級別。如果陣列中不存在目標值,返回 1,1 二分查詢,然後再遞迴二分查詢 head,mid 1 mid 1,tail 結果絕世 right ...

034在排序陣列中查詢元素的第乙個和最後乙個

1 include 000庫函式.h 2 3 使用二分法查詢到目標值的位置,然後分兩邊再查詢出起始位置和終止位置4 16ms 不是嚴格意義上的logn的複雜度 5class solution 9int i 0,j nums.size 1 10 int m 1 11 while i j 17if nu...