列表

详情


CMB14. 比特币最佳买卖时机

描述

给定一个正整数数组,它的第 i 个元素是比特币第 i 天的价格。

如果你最多只允许完成一笔交易(即买入和卖出一次),设计一个算法来计算你所能获取的最大利润。

注意你不能在买入比特币前卖出。

输入描述

正整数数组,为以空格分隔的n个正整数

输出描述

最大利润

示例1

输入:

7 1 5 3 6 4

输出:

5

原站题解

C 解法, 执行用时: 2ms, 内存消耗: 220KB, 提交时间: 2019-08-03

#include<stdio.h>
int main()
{
	int i,j,n,max=0,arr[20];
	char c;
	i=0;
	while (scanf("%d",arr+i))
	{
		c=getchar();
		i++;
		if(c=='\n')
			break;
	}
	n=i;
	// for(i=0;i<n;i++){
	// 	printf("%d\t",arr[i]);
	// }

	for(i=0;i<n-1;i++){
		for(j=i+1;j<n;j++){
			if(arr[j]-arr[i]>max){
				max=arr[j]-arr[i];
			}
		}
	}
	printf("%d",max);
	return 0;
}

C 解法, 执行用时: 2ms, 内存消耗: 308KB, 提交时间: 2022-08-06

#include<stdio.h>
int main() {
    int max_profit = 0;
    int curr_min_price;
    int curr_price;
    scanf("%d ", &curr_price);
    curr_min_price = curr_price;
    while(scanf("%d ", &curr_price) != EOF) {
        if (curr_price < curr_min_price) {
            curr_min_price = curr_price;
        }
        if (curr_price - curr_min_price > max_profit) {
            max_profit = curr_price - curr_min_price;
        }
        
    }
    printf("%d", max_profit);
    return 0;
}

上一题