给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,请你用C++写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。
时间: 2023-02-24 14:32:32 浏览: 211
以下是在C语言中实现的二分查找函数:
```
int binarySearch(int nums[], int n, int target) {
int left = 0, right = n - 1;
while (left <= right) {
int mid = (left + right) / 2;
if (nums[mid] == target) return mid;
else if (nums[mid] < target) left = mid + 1;
else right = mid - 1;
}
return -1;
}
```
这个函数使用二分查找算法,在数组`nums`中查找`target`,如果找到了,返回它的下标;如果没有找到,返回-1。
相关问题
用C++实现给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。
好的,这是一个简单的二分查找问题,在 C++ 中可以这样实现:
```c++
int binarySearch(vector<int>& nums, int target) {
int left = 0, right = nums.size() - 1;
while (left <= right) {
int mid = left + (right - left) / 2;
if (nums[mid] == target) {
return mid;
} else if (nums[mid] < target) {
left = mid + 1;
} else {
right = mid - 1;
}
}
return -1;
}
```
这个函数接受一个有序的整型数组 `nums` 和一个目标值 `target`,在 `nums` 中查找 `target`。如果找到了,返回对应的下标;否则返回 -1。
函数首先初始化左右指针 `left` 和 `right` 分别为数组的第一个和最后一个元素的下标。然后进入循环,只要 `left` 没有超过 `right`,就一直查找。
在循环中,首先计算中间元素的下标 `mid`。如果 `nums[mid]` 等于 `target`,说明找到了,直接返回 `mid`。如果 `nums[mid]` 小于 `target`,说明 `target` 在 `mid` 的右侧,将 `left` 更新为 `mid + 1`。如果 `nums[mid]` 大于 `target`,说明 `target` 在 `mid` 的左侧,将 `right` 更新为 `mid - 1`。
如果循环结束仍然没有找到 `target`,说明 `target` 不在数组中,返回 -1。
给定一个整数数组nums和一个目标值target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。c++
给定一个整数数组nums和一个目标值target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。你可以使用两层循环来遍历数组,找到两个数的和等于目标值的情况下,返回它们的下标即可。
以下是解决问题的步骤:
1. 创建一个空字典,用于存储数组中每个元素的值和索引。
2. 遍历数组nums,对于每个元素num和它的索引i,进行以下操作:
- 计算目标值减去当前元素的差值,即complement = target - num。
- 检查差值complement是否在字典中,如果是,则返回差值complement对应的索引和当前元素的索引i。
- 如果不在字典中,则将当前元素的值和索引存储在字典中。
3. 如果遍历结束后仍没有找到符合条件的两个数,返回一个空数组。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.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_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)