当前位置:首页 > 编程笔记 > 正文
已解决

【LeetCode热题100】--34.在排序数组中查找元素的第一个和最后一个位置

来自网友在路上 188888提问 提问时间:2023-10-06 03:35:05阅读次数: 88

最佳答案 问答题库888位专家为你答疑解惑

34.在排序数组中查找元素的第一个和最后一个位置

image-20231004201740408

二分查找中,寻找 leftIdx 即为在数组中寻找第一个大于等于 target 的下标,寻找 rightIdx 即为在数组中寻找第一个大于 target 的下标,然后将下标减一。进行两次查找

class Solution {public int[] searchRange(int[] nums, int target) {//寻找左边界int leftIndex = search(nums,target);if(leftIndex >= nums.length || nums[leftIndex] != target){return new int[]{-1,-1};}//寻找右边界int rightIndex = search(nums,target + 1);return new int[]{leftIndex, rightIndex - 1};}private int search(int[] nums, int target) {int left = 0;int right = nums.length - 1;while (left <= right){int mid = (right + left) / 2 ;if (nums[mid] >= target){right = mid - 1;} else {left = mid + 1;}}return left;}}
查看全文

99%的人还看了

猜你感兴趣

版权申明

本文"【LeetCode热题100】--34.在排序数组中查找元素的第一个和最后一个位置":http://eshow365.cn/6-16103-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!