-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathBestTimeToBuyAndSellStock.cpp
More file actions
35 lines (34 loc) · 954 Bytes
/
BestTimeToBuyAndSellStock.cpp
File metadata and controls
35 lines (34 loc) · 954 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
/*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.
*
*Example 1:
*Input: [7, 1, 5, 3, 6, 4]
*Output: 5
*
*max. difference = 6-1 = 5 (not 7-1 = 6, as selling price needs to be larger than buying price)
*Example 2:
*Input: [7, 6, 4, 3, 1]
*Output: 0
*
*In this case, no transaction is done, i.e. max profit = 0.
*/
class Solution {
public:
int maxProfit(vector<int>& prices) {
int profit=0;
if(prices.empty())
return 0;
int bought=prices[0];
for(int i=1;i<prices.size();i++)
{
if(prices[i]>bought)
{
profit=max(profit,prices[i]-bought);
}
else
bought=prices[i];
}
return profit;
}
};