在右侧编辑器补充代码,用户先输入n,然后输入一个规模为n的有序数组,再输入目标值下,求出目标值x在该数组中第一次和最后一次出现的位置,如果x未出现在数组中,输出两个-1。
时间: 2024-05-25 20:16:35 浏览: 19
n = int(input())
nums = list(map(int, input().split()))
target = int(input())
# 二分查找左边界
left = 0
right = n - 1
while left <= right:
mid = (left + right) // 2
if nums[mid] < target:
left = mid + 1
else:
right = mid - 1
if left >= n or nums[left] != target:
print(-1, -1)
else:
first_pos = left
# 二分查找右边界
left = first_pos
right = n - 1
while left <= right:
mid = (left + right) // 2
if nums[mid] > target:
right = mid - 1
else:
left = mid + 1
last_pos = right
print(first_pos, last_pos)
相关问题
C++补充代码,用户先输入n,然后输入一个规模为n的有序数组,再输入目标值下,求出目标值x在该数组中第一次和最后一次出现的位置,如果x未出现在数组中,输出两个-1。
#include <stdio.h>
int main() {
int n, x;
scanf("%d%d", &n, &x);
int a[n];
for (int i = 0; i < n; i++) {
scanf("%d", &a[i]);
}
int left = 0, right = n - 1;
int first = -1, last = -1;
while (left <= right) {
int mid = (left + right) / 2;
if (a[mid] == x) {
first = mid;
right = mid - 1;
} else if (a[mid] < x) {
left = mid + 1;
} else {
right = mid - 1;
}
}
left = 0, right = n - 1;
while (left <= right) {
int mid = (left + right) / 2;
if (a[mid] == x) {
last = mid;
left = mid + 1;
} else if (a[mid] < x) {
left = mid + 1;
} else {
right = mid - 1;
}
}
printf("%d %d\n", first, last);
return 0;
}
不用数组,手动输入N个整数,求最大值、最小值和平均值,利用c++代码实现
下面是利用C++代码实现手动输入N个整数,求最大值、最小值和平均值的方法,不使用数组:
```c++
#include <iostream>
using namespace std;
int main() {
int n;
cout << "请输入整数的个数:";
cin >> n;
int max_num, min_num, sum = 0;
for (int i = 0; i < n; i++) {
int num;
cout << "请输入第" << i + 1 << "个整数:";
cin >> num;
if (i == 0) {
max_num = num;
min_num = num;
} else {
if (num > max_num) {
max_num = num;
}
if (num < min_num) {
min_num = num;
}
}
sum += num;
}
double avg = (double)sum / n;
cout << "最大值为:" << max_num << endl;
cout << "最小值为:" << min_num << endl;
cout << "平均值为:" << avg << endl;
return 0;
}
```
首先,我们需要输入整数的个数n,然后利用for循环输入n个整数。在循环中,我们每次输入一个整数,然后判断该整数是否是最大值或者最小值。最后,我们求出这n个整数的和,再除以n,即可得到平均值。最后输出最大值、最小值和平均值即可。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)