From 9abe5ea2b1cb02d5fb9ba85407878917ecccd6a8 Mon Sep 17 00:00:00 2001 From: sriley Date: Wed, 17 Jul 2019 16:35:01 -0400 Subject: [PATCH 1/3] stock prices --- eating_cookies/eating_cookies.py | 22 +++++++++++++++++++++- stock_prices/stock_prices.py | 8 ++++++++ 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/eating_cookies/eating_cookies.py b/eating_cookies/eating_cookies.py index 62655d803..2c3561a86 100644 --- a/eating_cookies/eating_cookies.py +++ b/eating_cookies/eating_cookies.py @@ -6,7 +6,27 @@ # a solution that is more efficient than the naive # recursive solution def eating_cookies(n, cache=None): - pass + if n == 0: return 0 + if n == 1: return 1 + + return eating_cookies(n-1) + eating_cookies(n-2) + +cache = { + 0: 0, + 1: 1 +} + +def cookie_cache(n): + global cache + + if n in cache: + return cache[n] + + cache[n] = cookie_cache(n-1) + cookie_cache(n-2) + + return cache[n] + + if __name__ == "__main__": if len(sys.argv) > 1: diff --git a/stock_prices/stock_prices.py b/stock_prices/stock_prices.py index 9de20bc94..ca2e38ff8 100644 --- a/stock_prices/stock_prices.py +++ b/stock_prices/stock_prices.py @@ -4,7 +4,15 @@ def find_max_profit(prices): pass + min_price = prices[0] + max_profit = prices[1] - min_price + for i in range(len(prices)): + for j in range(i + 1, len(prices)): + if prices[j] - prices[i] > max_profit: + max_profit = prices[j] - prices[i] + + return max_profit if __name__ == '__main__': # This is just some code to accept inputs from the command line From 0ab234200383fb36b80e9639fbb347c6a2b10d32 Mon Sep 17 00:00:00 2001 From: sriley Date: Wed, 17 Jul 2019 18:15:53 -0400 Subject: [PATCH 2/3] recipes --- eating_cookies/eating_cookies.py | 2 +- recipe_batches/recipe_batches.py | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/eating_cookies/eating_cookies.py b/eating_cookies/eating_cookies.py index 2c3561a86..304a75870 100644 --- a/eating_cookies/eating_cookies.py +++ b/eating_cookies/eating_cookies.py @@ -6,7 +6,7 @@ # a solution that is more efficient than the naive # recursive solution def eating_cookies(n, cache=None): - if n == 0: return 0 + if n == 0: return 1 if n == 1: return 1 return eating_cookies(n-1) + eating_cookies(n-2) diff --git a/recipe_batches/recipe_batches.py b/recipe_batches/recipe_batches.py index c845950c5..3fa39215e 100644 --- a/recipe_batches/recipe_batches.py +++ b/recipe_batches/recipe_batches.py @@ -4,7 +4,18 @@ def recipe_batches(recipe, ingredients): pass + min_num = 1000000 + for key in recipe: + if key in ingredients: + num_batches = ingredients[key] / recipe[key] + if num_batches < min_num: + min_num = int(num_batches) + + else: + min_num = 0 + + return min_num if __name__ == '__main__': # Change the entries of these dictionaries to test From eb67ddc2bd0b71b23916caa0224576ab9e96cd51 Mon Sep 17 00:00:00 2001 From: sriley Date: Wed, 17 Jul 2019 18:35:33 -0400 Subject: [PATCH 3/3] cookies -k small passes --- eating_cookies/eating_cookies.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/eating_cookies/eating_cookies.py b/eating_cookies/eating_cookies.py index 304a75870..abaf58f6a 100644 --- a/eating_cookies/eating_cookies.py +++ b/eating_cookies/eating_cookies.py @@ -6,10 +6,12 @@ # a solution that is more efficient than the naive # recursive solution def eating_cookies(n, cache=None): - if n == 0: return 1 - if n == 1: return 1 + if n < 0: + return 0 + elif n == 0: + return 1 - return eating_cookies(n-1) + eating_cookies(n-2) + return eating_cookies(n-1) + eating_cookies(n-2) + eating_cookies(n-3) cache = { 0: 0, @@ -22,7 +24,7 @@ def cookie_cache(n): if n in cache: return cache[n] - cache[n] = cookie_cache(n-1) + cookie_cache(n-2) + cache[n] = cookie_cache(n-1) + cookie_cache(n-2) + cookie_cache(n-3) return cache[n]