DAY2 买卖青蛙

**题目:**你现在是一个买卖青蛙的 huster。每天的青蛙价格不一样,prices[i]代表青蛙在第 i 天的价 格,求只做一次交易(买入 1 只,卖出 1 只)能得到的最大收益(你必须先买了青蛙之后才能 卖青蛙)。

时间复杂度要求:O(n)

第二天买入一只青蛙,第四天卖出,则利润最高2远我的思路:先遍历找出最低售价即成本minprice;其次利润=卖出价格-成本,只有当成本最低且卖出价格最高时利润difference最高。

#include<stdio.h>

int maxIncome(int price[], int n)
{
	int i, tempt;
	int minprice=price[0], difference = 0;
	
	//找出最低售价
	for (i = 1; i < n; i++)
	{
		if (minprice > price[i])
		{
			minprice = price[i];
			tempt = i;
		}}
		
	//找出利润最高
	for (i = tempt+1; i < n; i++)
	{
		if (difference < price[i] - minprice)
		{
			difference = price[i] - minprice;
		}}
		
	return difference;
}

int main()
{
	int price[] = { 4,5,1,2 };
	int income;
	income = maxIncome(price, 4);
	printf("the highest income is %d\n", income);
	return 0;
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值