狗熊岭美人松查找问题的 C++ 实现
以下是解决该问题的 C++ 代码: ```cpp #include <iostream> #include <cstdio> // 二分查找函数,用于查找高度为 target 的美人松是否存在 bool binarySearch(long long arr[], int n, long long target) { int left = 0, right = n - 1; while (left <= right) { int mid = left + (right - left) / 2; if (arr[mid] == target) { return true; } else if (arr[mid] < target) { left = mid + 1; } else { right = mid - 1; } } return false; } int main() { int n, m; // 使用 scanf 读取 n 和 m scanf("%d %d", &n, &m); long long trees[1000000]; // 读取 n 棵美人松的高度 for (int i = 0; i < n; i++) { scanf("%lld", &trees[i]); } for (int i = 0; i < m; i++) { long long k; // 读取每次询问的高度 k scanf("%lld", &k); // 调用二分查找函数判断高度为 k 的美人松是否存在 if (binarySearch(trees, n, k)) { printf("1"); } else { printf("0"); } if (i < m - 1) { printf(" "); } } printf("\n"); return 0; } ``` ### 代码解释: 1. **二分查找函数 `binarySearch`**:该函数接受一个已排序的数组 `arr`、数组长度 `n` 和目标值 `target` 作为参数。通过不断缩小查找范围,判断目标值是否存在于数组中。如果存在,返回 `true`;否则返回 `false`。 2. **主函数 `main`**: - 首先使用 `scanf` 读取 `n` 和 `m`,分别表示美人松的数量和询问的次数。 - 接着读取 `n` 棵美人松的高度,并存储在数组 `trees` 中。 - 然后进行 `m` 次询问,每次读取一个高度 `k`,调用 `binarySearch` 函数判断高度为 `k` 的美人松是否存在。如果存在,输出 `1`;否则输出 `0`。 ### 复杂度分析: - **时间复杂度**:二分查找的时间复杂度为 $O(log n)$,对于 $m$ 次询问,总的时间复杂度为 $O(m log n)$。 - **空间复杂度**:只使用了一个长度为 $n$ 的数组来存储美人松的高度,因此空间复杂度为 $O(n)$。 ######[AI问答 | 683点数解答 | 2026-02-24 19:56:05]
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)327
- 51 单片机:定时器 0 实现 8 个 LED 循环点亮,附代码及优化建议(字节豆包 | 1193点数解答 | 2024-12-27 15:10:29)295
- Linux开发:用find命令查找/usr目录下超1MB的文件(百度文心 | 153点数解答 | 2023-11-09 18:45:10)198
- 8 个实用命令,助 Linux 开发者轻松查找服务器平均负载!(百度文心 | 311点数解答 | 2023-11-09 18:47:10)215
- C++实现顺序存储结构基本操作:初始化、插入、删除等全解析(GPT | 1743点数解答 | 2024-09-26 00:20:17)269
- C 语言实现:精准查找比特流中的同步码(字节豆包 | 336点数解答 | 2024-11-14 22:45:41)132
- C语言实现多班级学生信息管理系统:含增删改查与多样排序功能(GPT | 2547点数解答 | 2024-12-15 22:08:58)348
- C语言实现学生信息管理系统:含增删改查与多种排序功能(GPT | 6408点数解答 | 2024-12-15 22:10:03)335
- Python 实现多功能手机通讯录:添加、查看、删除、修改、查找全搞定!(字节豆包 | 1030点数解答 | 2025-06-05 15:47:56)230
- 浙闽“板凳龙”舞龙队 300 秒螺线盘入:位置与速度全揭秘(阿里通义 | 886点数解答 | 2024-09-07 10:31:31)622
- 浙闽“板凳龙”舞龙队 300 秒位置与速度数学模型揭秘(GPT | 565点数解答 | 2024-09-07 10:32:56)518
- 223节板凳龙沿等距螺线盘入:300秒内位置与速度的数学揭秘 (讯飞星火 | 443点数解答 | 2024-09-07 10:34:10)363