日期:2025年5月21日
ZeroJudge 題目連結:f934. 消失的二十年
解題想法
這是 l919. P.2 珠寶交易 (Jewel) ) 簡化題,只要計算一次買賣的最大獲利。
Python 程式碼
使用時間約為 1.2 s,記憶體約為 78.3 MB,通過測試。
buy, profit = float('inf'), 0 # 最低買價,利潤
for p in map(int, input().split()): # 讀取每天的價格
buy = min(buy, p) # 更新最低買價
profit = max(profit, p - buy) # 更新最大利潤
print(profit)
使用時間約為 0.8 s,記憶體約為 78.4 MB,通過測試。
buy, profit = float('inf'), 0 # 最低買價,利潤
for p in map(int, input().split()): # 讀取每天的價格
if p < buy: buy = p # 更新最低買價
if p - buy > profit: profit = p - buy # 更新最大利潤
print(profit)
C++ 程式碼
使用時間約為 0.1 s,記憶體約為 96 kB,通過測試。
#include <cstdio>
#include <algorithm>
using namespace std;
int main() {
int buy = 1E9, profit = 0, p; // 最低買價,利潤,價格
while(scanf("%d", &p) != EOF) { // 讀取每天的價格
buy = min(buy, p); // 更新最低買價
profit = max(profit, p - buy); // 更新最大利潤
}
printf("%d\n", profit);
return 0;
}
使用時間約為 0.1 s,記憶體約為 76 kB,通過測試。
#include <cstdio>
int main() {
int buy = 1E9, profit = 0, p; // 最低買價,利潤,價格
while(scanf("%d", &p) != EOF) { // 讀取每天的價格
if (p < buy) buy = p; // 更新最低買價
if (p - buy > profit) profit = p - buy; // 更新最大利潤
}
printf("%d\n", profit);
return 0;
}
沒有留言:
張貼留言