Skip to content

Commit 10baccf

Browse files
committed
qs34
1 parent 341869c commit 10baccf

File tree

1 file changed

+32
-0
lines changed

1 file changed

+32
-0
lines changed

algorithms/searchRange/searchRange.js

+32
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
/**
2+
* @param {number[]} nums
3+
* @param {number} target
4+
* @return {number[]}
5+
*/
6+
var searchRange = function(nums, target) {
7+
// 先排除没有目标元素的情况
8+
if (nums.indexOf(target) === -1) return [-1, -1];
9+
// 双指针
10+
var start = 0;
11+
var end = nums.length - 1;
12+
var indexArr = [];
13+
while (end >= start) {
14+
if (nums[start] === target && !indexArr[0]) {
15+
indexArr[0] = start;
16+
} else {
17+
start++
18+
}
19+
if (nums[end] === target && !indexArr[1]) {
20+
indexArr[1] = end;
21+
} else {
22+
end--
23+
}
24+
}
25+
26+
// 只有一个相等的情况
27+
if (!indexArr[0]) return [indexArr[1], indexArr[1]];
28+
if (!indexArr[1]) return [indexArr[0], indexArr[0]];
29+
30+
return indexArr;
31+
};
32+
console.log(searchRange([1, 3, 9, 4, 5], 4));

0 commit comments

Comments
 (0)