最大收益

原创 2016年06月01日 16:02:19
/*
   Say you have an array for which the ith element is the price of a given stock on day i.


   If you were only permitted to complete at most one transaction (ie, buy one and sell one share of the stock), design an algorithm to find the maximum profit.
 */


题意:
给定一系列价格(每天的),计算出最多能赚到多少钱,而且只能买卖一次。


多赚钱的原则就是低买高买,但要注意卖出一定要在买入之后。


* 方法一:只需要遍历一次价格。min=max=prices[0],不断置换最大的价格max,当出现比min小的价格时,计算这一轮的最大收益即max-min,如果比之前的收益更大,就更新最大收益。然后,重置min=price[i],max=min,开始新一轮的计算。最后,把max-min跟最大收益比较,返回最大收益。



#include <stdio.h>


int maxProfit(int* prices, int pricesSize) {
int min = prices[0], max = min;
int ret = 0;
for (int i = 1; i < pricesSize; i ++) {
if (min > prices[i]) {
ret = (max - min) > ret ? (max - min) : ret;
min = prices[i];
max = min;
}
else if (max < prices[i]) { 
    max = prices[i];

}
ret = (max - min) > ret ? (max - min) : ret;
return ret;
}


int main(int argc, char *argv[])
{
int arr[] = {5, 5, 6, 5, 4, 3, 5, 8, 3, 2, 5, 9};
printf("maxprofit: %d\n", maxProfit(arr, sizeof arr/sizeof arr[0]));
return 0;
}

版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

收益最大

题目描述 已知每个人做每件工作的收益WijW_{ij}求一种分配的方案(每个人必须有工作),且收益最大。 输入描述第一行一个整数N(1≤N≤300)N(1\le N\le 300),下面是一个N∗...

bzoj1497 [NOI2006]最大收益

最小割 思路比较简单 点数看起来很多但是因为是类似二分图的东西所以跑的比较快 源点对每个用户连容量为收益的边 用户向中转站连容量无穷大的边 中转站向汇点连容量为成本的边 要么割掉用户带来的收益...

精选:深入理解 Docker 内部原理及网络配置

网络绝对是任何系统的核心,对于容器而言也是如此。Docker 作为目前最火的轻量级容器技术,有很多令人称道的功能,如 Docker 的镜像管理。然而,Docker的网络一直以来都比较薄弱,所以我们有必要深入了解Docker的网络知识,以满足更高的网络需求。

Pinterest模式保证收益最大化

其实pinterest这种挖掘有趣内容、收藏并分享的模式很早就有了(之前的delicious等),这次的快速流行主要是因为他将图作为一种核心的信息载体,一切内容都是围绕着图展开。在当下互联网信息泛滥,...

买卖股票收益最大问题

1、给定一个数组,代表每天股票的价格,买卖一次找到最大的收益。public int maxProfit(int[] prices) { if(prices==null||prices....

【Leetcode】Best Time to Buy and Sell Stock III

Say you have an array for which the ith element is the price of a given stock on day i. Design an...

最大股票收益问题(数组最大差问题)

最大股票收益问题(数组最大差问题)问题描述给定一个数组,存储着按照时间排序的股票价格,第ii个位置的元素为第ii次交易时的股票价格;现假设只允许你进行一次买,然后在某一时刻卖出(单只股票),请设计算法...

1020. 月饼 (25)

月饼是中国人在中秋佳节时吃的一种传统食品,不同地区有许多不同风味的月饼。现给定所有种类月饼的库存量、总售价、以及市场的最大需求量,请你计算可以获得的最大收益是多少。 注意:销售时允许取出一部分库...

[Lintcode] Best Time to Buy and Sell Stock IV

问题描述Say you have an array for which the ith element is the price of a given stock on day i. Design ...

第四章 最大子数组问题(股票最大收益) C++实现 算法导论

最大子数组问题可以归为分治算法。只不过这个和平常的分治算法问题不同,这个问题的解分为三部分:最大值可能完全位于最左边,也可能完全位于最右边,也有可能跨越了中点。因此这个问题的关键点是求出位于中间的最大...

最多n次购买时股票最大收益问题

一般我们常见的股票最大收益问题是: 已知一支股票连续n天的价格走势,以长度为n的整数数组表示,数组中第i个元素(prices[i])代表该股票第i天的股价。 假设你一开始没有股票,但有至多两次买入...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)