b993 - 計算最高史萊姆擊殺分數!
題目描述
題目要求讀取多組資料,每組資料包含 N 隻史萊姆的擊殺分數,並輸出每組資料中最高的擊殺分數。輸入的第一行表示史萊姆的數量 N,第二行包含 N 個以空白分隔的擊殺分數。
解題思路
這題的解題思路非常簡單,使用貪心演算法即可。對於每組資料,初始化一個 max 變數為 0,然後遍歷所有史萊姆的擊殺分數,如果當前分數大於 max,則更新 max。最後輸出 max。程式使用 while(scanf("%d",&a)>0) 迴圈來處理多組輸入,內部再使用 while(a>0) 迴圈來讀取每組資料的史萊姆分數。
複雜度分析
- 時間複雜度: O(N),其中 N 是史萊姆的數量。因為需要遍歷所有史萊姆的擊殺分數。
- 空間複雜度: O(1),因為只需要一個額外的變數
max來儲存最高分數。
程式碼
#include <stdio.h>
int main(){
int a,b,max=0;
while(scanf("%d",&a)>0){
while(a>0){
scanf("%d",&b);
if(b>max)
max=b;
a--;
}
printf("%d\n",max);
max=0;
}
}