CSharp 实现有序数组中查找数字的范围 源代码
时间: 2024-05-04 16:15:34 浏览: 95
c#实现从字符串数组中把数字的元素找出来
请看以下C#源代码:
```csharp
public static int[] SearchRange(int[] nums, int target) {
int left = 0, right = nums.Length - 1;
int start = -1, end = -1;
// 找出数字范围的起始位置
while(left <= right) {
int mid = (left + right) / 2;
if(nums[mid] >= target) {
right = mid - 1;
if(nums[mid] == target) {
start = mid;
}
} else {
left = mid + 1;
}
}
// 如果数组中没有目标数字,直接返回[-1, -1]
if(start == -1) {
return new int[]{-1, -1};
}
// 找出数字范围的结束位置
left = start;
right = nums.Length - 1;
while(left <= right) {
int mid = (left + right) / 2;
if(nums[mid] <= target) {
left = mid + 1;
if(nums[mid] == target) {
end = mid;
}
} else {
right = mid - 1;
}
}
return new int[]{start, end};
}
```
这段代码实现了在有序数组中查找数字的范围,可以找出目标数字在数组中出现的起始位置和结束位置。
阅读全文