Advertisement
sak1b

Untitled

Nov 17th, 2021
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.69 KB | None | 0 0
  1. // https://leetcode.com/problems/best-time-to-buy-and-sell-stock-with-cooldown/
  2.  
  3. // int dp[5005][5005];
  4. class Solution {
  5. public:
  6. int dp[5005][5005];
  7. int n=0;
  8. int fun(vector<int>& arr, int i, int j)
  9. {
  10. if(i>=n || j>=n) return 0;
  11.  
  12. if(dp[i][j]!=-1) return dp[i][j];
  13.  
  14. int buy = fun(arr, i,j+1);
  15. buy =max(buy, arr[j]-arr[i] + fun(arr,j+2,j+2));
  16. if(i==j)
  17. {
  18. buy = max(buy,fun(arr,i+1,j+1));
  19. }
  20.  
  21. return dp[i][j] = buy;
  22. }
  23.  
  24. int maxProfit(vector<int>& prices) {
  25. memset(dp,-1,sizeof(dp));
  26. n = prices.size();
  27. return fun(prices,0,0);
  28. }
  29. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement