最新消息:XAMPP默认安装之后是很不安全的,我们只需要点击左方菜单的 "安全"选项,按照向导操作即可完成安全设置。

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

XAMPP教程 admin 1051浏览 0评论

给定一个按照升序排列的整数数组 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]
答案参考:

/**
* @param {number[]} nums
* @param {number} target
* @return {number[]}
*/
var searchRange = function (nums, target) {
let targetIndex = binarySearch(nums, target, 0, nums.length – 1)
if (targetIndex == -1) return [-1, -1]
let l = targetIndex, r = targetIndex
while(l > 0 && nums[l – 1] == target){
l–
}
while(r < nums.length – 1 && nums[r + 1] == target){
r++
}
return [l, r]
};

function binarySearch(arr, val, lo, hi) {
if (hi < lo) return -1
let mid = lo + parseInt((hi – lo) / 2)

if (val < arr[mid]) {
return binarySearch(arr, val, lo, mid – 1)
} else if (val > arr[mid]) {
return binarySearch(arr, val, mid + 1, hi)
} else {
return mid
}
}

转载请注明:XAMPP中文组官网 » LeetCode34.在排序数组中查找元素的第一个和最后一个位置 JavaScript

您必须 登录 才能发表评论!