# 122. Best Time to Buy and Sell Stock II (Easy)

## Problem

• Say you have an array prices 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 (i.e., buy one and sell one share of the stock multiple times).
• Note: You may not engage in multiple transactions at the same time (i.e., you must sell the stock before you buy again).

Example 1:

``````Input: [7,1,5,3,6,4]
Output: 7
Explanation: Buy on day 2 (price = 1) and sell on day 3 (price = 5), profit = 5-1 = 4.
Then buy on day 4 (price = 3) and sell on day 5 (price = 6), profit = 6-3 = 3.
``````

## Solution

### Go

``````func maxProfit(prices []int) int {
res := 0
for i := 1; i < len(prices); i++ {
if prices[i] > prices[i-1] {
res += prices[i]-prices[i-1]
}
}

return res
}``````

### PHP

``````class Solution {

/**
* @param Integer[] \$prices
* @return Integer
*/
function maxProfit(\$prices) {
\$sum = 0;
\$count = count(\$prices);
for (\$i = 1; \$i < \$count; \$i++) {
if (\$prices[\$i] >= \$prices[\$i-1]) {
\$sum += \$prices[\$i] - \$prices[\$i-1];
}
}
return \$sum;
}
}
``````

## Impression

• 総当たりしか理解が難しそうだったので総当たりで。
• 利益の最大値を求めるのではなく、利益の総和を求めれば良いので、初日(配列の最初の要素)から1日ずつ翌日との差額を足していけばOK
##### Written By Fukuaki TAKANO Engineering Manager at Connehito inc.