Skip to content

Instantly share code, notes, and snippets.

@DaniloOliveira28
Created June 22, 2016 02:34
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save DaniloOliveira28/40ab47605e8f696f8025471d4a814d42 to your computer and use it in GitHub Desktop.
Save DaniloOliveira28/40ab47605e8f696f8025471d4a814d42 to your computer and use it in GitHub Desktop.
def maxProfit(prices):
if len(prices) < 2:
return 0
s0 = dict()
s1 = dict()
s2 = dict()
s0[0] = 0
s1[0] = -prices[0]
s2[0] = 0
s0Actions = dict()
s1Actions = dict()
s2Actions = dict()
s0Actions[0] = []
s0Actions[0].append("cold")
s1Actions[0] = []
s1Actions[0].append("buy")
s2Actions[0] = []
s2Actions[0].append("-")
for i in range(1, len(prices)):
s0[i] = max(s0[i - 1], s2[i - 1])
if s0[i - 1] > s2[i - 1]:
s0Actions[i] = s0Actions[i - 1] + ["cold"]
else:
s0Actions[i] = s2Actions[i - 1] + ["cold"]
s1[i] = max(s1[i - 1], s0[i - 1] - prices[i])
if s1[i - 1] > s0[i - 1] - prices[i]:
s1Actions[i] = s1Actions[i - 1] + ["cold"]
else:
s1Actions[i] = s0Actions[i - 1] + ["buy"]
s2[i] = s1[i - 1] + prices[i]
s2Actions[i] = s1Actions[i - 1] + ["sell"]
print prices
if s0[len(prices) - 1] > s2[len(prices) - 1]:
print s0Actions[len(prices) - 1]
else:
print s2Actions[len(prices) - 1]
return max(s0[len(prices) - 1], s2[len(prices) - 1])
if __name__ == "__main__":
print maxProfit([1, 2, 3, 0, 2, 20])
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment