In this post, we are going to solve the** 714. Best Time to Buy and Sell Stock with Transaction Fee** problem of Leetcode. This problem **714. Best Time to Buy and Sell Stock with Transaction Fee** is a Leetcode **medium **level problem. Let’s see code, **714. Best Time to Buy and Sell Stock with Transaction Fee** **– Leetcode Solution**.

**Problem**

You are given an array `prices`

where `prices[i]`

is the price of a given stock on the `i`

day, and an integer ^{th}`fee`

representing a transaction fee.

Find the maximum profit you can achieve. You may complete as many transactions as you like, but you need to pay the transaction fee for each transaction.

**Note:** You may not engage in multiple transactions simultaneously (i.e., you must sell the stock before you buy again).

**Example 1 :**

```
Input: prices = [1,3,2,8,4,9], fee = 2
Output: 8
Explanation: The maximum profit can be achieved by:
- Buying at prices[0] = 1
- Selling at prices[3] = 8
- Buying at prices[4] = 4
- Selling at prices[5] = 9
The total profit is ((8 - 1) - 2) + ((9 - 4) - 2) = 8.
```

**Example 2 :**

```
Input: prices = [1,3,7,5,10,3], fee = 3
Output: 6
```

**Constraints**

`1 <= prices.length <= 3 * 10`

^{4}`1 <= prices[i] < 5 * 10`

^{4}`0 <= fee < 5 * 10`

^{4}

Now, let’s see the code of **714. Best Time to Buy and Sell Stock with Transaction Fee** – Leetcode Solution.

**Best Time to Buy and Sell Stock with Transaction Fee** – Leetcode Solution

**– Leetcode Solution**

**Best Time to Buy and Sell Stock with Transaction Fee****714. Best Time to Buy and Sell Stock with Transaction Fee** – Solution in Java

**– Solution in Java**

**714. Best Time to Buy and Sell Stock with Transaction Fee**class Solution { public int maxProfit(int[] prices, int fee) { int obsp = -prices[0]; int ossp = 0; for(int i=1;i<prices.length;i++){ int nbsp = 0; int nssp = 0; if(ossp - prices[i] > obsp){ nbsp = ossp - prices[i]; }else{ nbsp = obsp; } if(obsp + prices[i] - fee > ossp){ nssp = obsp + prices[i] - fee; }else{ nssp = ossp; } obsp = nbsp; ossp = nssp; } return Math.max(obsp,ossp); } }

**714. Best Time to Buy and Sell Stock with Transaction Fee** – Solution in C++

**C++**

**– Solution in****714. Best Time to Buy and Sell Stock with Transaction Fee**class Solution { public: int maxProfit(vector<int>& prices, int fee) { int obsp = -prices[0]; int ossp = 0; for(int i=1;i<prices.size();i++){ int nbsp = 0; int nssp = 0; if(ossp - prices[i] > obsp){ nbsp = ossp - prices[i]; }else{ nbsp = obsp; } if(obsp + prices[i] - fee > ossp){ nssp = obsp + prices[i] - fee; }else{ nssp = ossp; } obsp = nbsp; ossp = nssp; } return max(obsp,ossp); } };

**714. Best Time to Buy and Sell Stock with Transaction Fee** **– Solution in **Python

**714. Best Time to Buy and Sell Stock with Transaction Fee**

**Python**

**– Solution in**class Solution: def maxProfit(self, prices: List[int], fee: int) -> int: ans, cost = 0, prices[0] for p in prices[1:]: if p<cost: cost = p elif p>cost+fee: ans += p-(cost+fee) cost = p-fee return ans

**Note:** This problem **714. Best Time to Buy and Sell Stock with Transaction Fee** is generated by **Leetcode **but the solution is provided by **CodingBroz**. This tutorial is only for **Educational** and **Learning** purpose.