1. 题目 需求
2. 代码实现
/*** Definition for singly-linked list.*/
#include<iostream>
#include<vector>
using namespace std;class Solution {
public:vector<int> searchRange(vector<int>& nums, int target) {return vector<int>{findLeft(nums, target), findRight(nums, target)};}int findLeft(vector<int>& nums, int target) {int left = 0, right = nums.size() - 1, mid = 0;while (left <= right) {mid = left + (right - left) / 2;if (target == nums[mid]) {right = mid - 1;}else if (target < nums[mid]) {right = mid - 1;}else {left = mid + 1;}}if (left >= nums.size() || nums[left] != target){ return -1;}return left;}int findRight(vector<int>& nums, int target) {int left = 0, right = nums.size() - 1, mid = 0;while (left <= right) {mid = left + (right - left) / 2;if (target == nums[mid]) {left = mid + 1;}else if (target < nums[mid]) {right = mid - 1;}else {left = mid + 1;}}if (right < 0 || nums[right] != target){ return -1;}else{ return right;}}
};
int main()
{Solution test;vector<int> nums = { 5, 7, 7, 8, 8, 10 };int target = 8;vector<int> searchRange = test.searchRange(nums, target);for (auto var : searchRange){std::cout << var << " ";}std::cout << " " << std::endl;return 0;
}
3. 测试结果
3 4C:\Users\lenovo\source\repos\Project1\x64\Debug\Project1.exe (进程 1796)已退出,代码为 0。
要在调试停止时自动关闭控制台,请启用“工具”->“选项”->“调试”->“调试停止时自动关闭控制台”。
按任意键关闭此窗口. . .