# Leetcode 之 Best Time to Buy and Sell StockI,II

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.

f(n) = Max( f(n-1), prof[i] - min[n])

    public int maxProfit(int[] prices) {
int days = prices.length;
if(days == 0)   return 0;
int[] maxPro = new int[days];
int[] min = new int[days];

for(int i = 0;i < days;i++){
if(i == 0){
maxPro[0] = 0;
min[0] = prices[0];
}
else if(i == 1){
int r = prices[1] - prices[0];
if(r < 0){
maxPro[1] = 0;
}
else{
maxPro[1] = r;
}
min[1] = Math.min(prices[0], prices[1]);
}
else{
min[i] = Math.min(min[i - 1], prices[i]);
maxPro[i] = Math.max(maxPro[i - 1], prices[i] - min[i]);
}
}

return maxPro[days - 1];
}

198 / 198 test cases passed.
Status: Accepted
Runtime: 368 ms

Best Time to Buy and Sell Stock II
Say you have an array for which the ith element is the price of a given stock on day i.

Design an algorithm to find the maximum profit. You may complete as many transactions as you like (ie, buy one and sell one share of the stock multiple times). However, you may not engage in multiple transactions at the same time (ie, you must sell the stock before you buy again).

II就允许多次交易了，其实类似贪心的活动安排问题，原则就是尽可能多的进行交易，所以我们只需要比较第n天和第n+1天的price，如果大的话就进行交易即可。

public int maxProfit(int[] prices) {
int maxPro = 0;
for (int i = 1;i < prices.length;i++){
if(prices[i] > prices[i - 1]){
maxPro += prices[i] - prices[i - 1];
}
}

return maxPro;
}

198 / 198 test cases passed.
Status: Accepted
Runtime: 376 ms

• 本文已收录于以下专栏：

## [Leetcode]122. Best Time to Buy and Sell Stock II

122. Best Time to Buy and Sell Stock IISay you have an array for which the i-th element is the price...

• MacanS
• 2016年10月09日 22:09
• 128

## LeetCode122 Best Time to Buy and Sell Stock II

• zxwtry
• 2017年05月06日 22:17
• 191

## LeetCode | Best Time to Buy and Sell Stock II

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

## 和大神们学习每天一题(leetcode)-Best Time to Buy and Sell Stock II

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

## 【leetcode】Array——Best Time to Buy and Sell Stock I/II/III

Best Time to Buy and Sell Stock 题目： Say you have an array for which the ith element is the pri...

## LeetCode题解：122. Best Time to Buy and Sell Stock II

• yums467
• 2016年04月11日 23:38
• 299

## LeetCode_Best Time to Buy and Sell Stock II

LeetCode_Best Time to Buy and Sell Stock II 解题思路

## LeetCode——Best Time to Buy and Sell Stock II

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

## 算法设计Week5 LeetCode Algorithms Problem #122 Best Time to Buy and Sell Stock II

举报原因： 您举报文章：Leetcode 之 Best Time to Buy and Sell StockI,II 色情 政治 抄袭 广告 招聘 骂人 其他 (最多只允许输入30个字)