# Greedy# Iteration

b993 - 計算最高史萊姆擊殺分數!

🔗 前往 ZeroJudge 原題

題目描述

題目要求讀取多組資料,每組資料包含 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;
	}
}

Discussion