题解
【入门】陶陶摘苹果
1 条题解
-
0
解题思路
树上有 10 个苹果,陶陶可以踩一个 30 厘米高的板凳。给出每个苹果的高度和陶陶伸直手能达到的高度,算一算能摘到几个苹果。
思路:先算能摸到的最高高度,再逐个比较。
- 陶陶能摸到的最高高度 = 手伸到的高度 + 30(板凳的高度)
- 把 10 个苹果的高度挨个和这个高度比较
- 只要苹果的高度不超过能摸到的高度,就能摘到,数量加 1
- 输出总数
为什么是加上 30? 陶陶够不着的时候可以踩上板凳,所以手能到达的最大高度就是伸直高度加上板凳高度。
举例:样例里陶陶手伸到 110 厘米,加上板凳能摸到 140。10 个苹果里高度不超过 140 的有 100、140、129、134、111 这 5 个,所以答案是 5。
参考代码
#include <iostream> using namespace std; int main() { int a[10]; // 10 个苹果到地面的高度 for (int i = 0; i < 10; i++) { cin >> a[i]; } int h; // 陶陶把手伸直时能达到的最大高度 cin >> h; int reach = h + 30; // 踩上 30 厘米的板凳后能摸到的高度 int cnt = 0; // 记录能摘到的苹果数 for (int i = 0; i < 10; i++) { // 苹果高度不超过能摸到的高度,就能摘到 if (a[i] <= reach) { cnt++; } } cout << cnt; // 输出能摘到的苹果数目 return 0; }复杂度分析
- 时间复杂度:O(1),固定 10 个苹果,只循环一次
- 空间复杂度:O(1),只用了固定大小的数组和几个变量
- 1