Find First and Last Position of Element in Sorted Array LeetCode solution in C++
1class Solution {2public:3int startEle(vector<int> &nums, int target, int l, int r) {4while (l <= r) {5int m = (l + r) / 2;6if (nums[m] < target)7l = m + 1;8else if (nums[m] > target)9r = m - 1;10else {11if (m == 0)12return m;13else if (nums[m - 1] == target)14r = m - 1;15else16return m;17}18}1920return -1;21}2223int lastEle(vector<int> &nums, int target, int l, int r) {24while (l <= r) {25int m = (l + r) / 2;26if (nums[m] < target)27l = m + 1;28else if (nums[m] > target)29r = m - 1;30else {31if (m == nums.size() - 1)32return m;33else if (nums[m + 1] == target)34l = m + 1;35else36return m;37}38}3940return -1;41}42vector<int> searchRange(vector<int> &nums, int target) {43vector<int> binSearch;44int a = startEle(nums, target, 0, nums.size() - 1);45if (a == -1) {46binSearch.push_back(-1);47binSearch.push_back(-1);48return binSearch;49} else {50binSearch.push_back(a);51}5253int b = lastEle(nums, target, 0, nums.size() - 1);54binSearch.push_back(b);5556return binSearch;57}58};