题目
算法
(模拟,枚举)
O
(
n
)
O(n)
O(n)
枚举每一天,算出在校学习和在家学习的总时间的最大值。
然后判断最大值是否大于8:
- 如果最大值大于8,则输出那一天的编号;
- 否则津津每天都会很开心,输出0.
时间复杂度分析
对每天处理一次,所以时间复杂度是 O ( n ) O(n) O(n),其中 n n n 是总天数。
C++ 代码
#include <cstdio>
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
int main()
{
int a, b; // a表示在校学习时间,b表示在家学习时间
int max_time = 0, day;
for (int i = 1; i <= 7; i++)
{
cin >> a >> b; // 输入在校时间和在家时间
if(a + b > max_time)
{
max_time = a + b; // 如果当天的学习时间大于最大学习时间的话,就更新最大学习时间
day = i; // 把日期记成那天的编号
}
}
if(max_time > 8)
cout << day << endl;
else
cout << 0 << endl;
return 0;
}