Steward
分享是一種喜悅、更是一種幸福
程式語言 - LeetCode - C - 34. Find First and Last Position of Element in Sorted Array
參考資訊:
https://algo.monster/liteproblems/34
https://www.cnblogs.com/grandyang/p/4409379.html
題目:

解答:
int find_element(int *nums, int numsSize, int t)
{
int l = 0;
int r = numsSize;
while (l < r) {
int m = l + ((r - l) >> 1);
if (nums[m] < t) {
l = m + 1;
}
else {
r = m;
}
}
return r;
}
/**
* Note: The returned array must be malloced, assume caller calls free().
*/
int* searchRange(int* nums, int numsSize, int target, int* returnSize)
{
int *r = calloc(2, sizeof(int));
int st = find_element(nums, numsSize, target);
*returnSize = 2;
if ((st == numsSize) || (nums[st] != target)) {
r[0] = -1;
r[1] = -1;
return r;
}
r[0] = st;
r[1] = find_element(nums, numsSize, target + 1) - 1;
return r;
}