From 6a7f48613dfe6b30ca47bec40d15dcad1ef06921 Mon Sep 17 00:00:00 2001 From: ajinkyac03 Date: Fri, 9 Sep 2022 16:07:45 +0530 Subject: [PATCH 1/3] Added implementation for Tribonacci sequence using dp --- dynamic_programming/tribonacci.py | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 dynamic_programming/tribonacci.py diff --git a/dynamic_programming/tribonacci.py b/dynamic_programming/tribonacci.py new file mode 100644 index 000000000000..12b846c19271 --- /dev/null +++ b/dynamic_programming/tribonacci.py @@ -0,0 +1,25 @@ +# Tribonacci sequence using Dynamic Programming + + +def tribonacci(n: int) -> list: + """ + Given a number n, return first n Tribonacci Numbers. + >>> tribonacci(5) + [0, 0, 1, 1, 2] + >>> tribonacci(8) + [0, 0, 1, 1, 2, 4, 7, 13] + """ + dp = [0 for i in range(n)] + dp[0] = dp[1] = 0 + dp[2] = 1 + + for i in range(3, n): + dp[i] = dp[i - 1] + dp[i - 2] + dp[i - 3] + + return dp + + +if __name__ == "__main__": + import doctest + + doctest.testmod() From 3f75428c042f615d909b9db7277deeafebb25a55 Mon Sep 17 00:00:00 2001 From: ajinkyac03 Date: Mon, 12 Sep 2022 11:33:25 +0530 Subject: [PATCH 2/3] Updated parameter name --- dynamic_programming/tribonacci.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/dynamic_programming/tribonacci.py b/dynamic_programming/tribonacci.py index 12b846c19271..6032fd90bf8c 100644 --- a/dynamic_programming/tribonacci.py +++ b/dynamic_programming/tribonacci.py @@ -1,19 +1,19 @@ # Tribonacci sequence using Dynamic Programming -def tribonacci(n: int) -> list: +def tribonacci(num: int) -> list: """ - Given a number n, return first n Tribonacci Numbers. + Given a number, return first n Tribonacci Numbers. >>> tribonacci(5) [0, 0, 1, 1, 2] >>> tribonacci(8) [0, 0, 1, 1, 2, 4, 7, 13] """ - dp = [0 for i in range(n)] + dp = [0 for i in range(num)] dp[0] = dp[1] = 0 dp[2] = 1 - for i in range(3, n): + for i in range(3, num): dp[i] = dp[i - 1] + dp[i - 2] + dp[i - 3] return dp From 56291c4d2c0256a528b01a816b03b256d1b6ed92 Mon Sep 17 00:00:00 2001 From: Tianyi Zheng Date: Mon, 14 Aug 2023 00:06:14 -0700 Subject: [PATCH 3/3] Apply suggestions from code review --- dynamic_programming/tribonacci.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/dynamic_programming/tribonacci.py b/dynamic_programming/tribonacci.py index 6032fd90bf8c..58e15da918e2 100644 --- a/dynamic_programming/tribonacci.py +++ b/dynamic_programming/tribonacci.py @@ -1,7 +1,7 @@ # Tribonacci sequence using Dynamic Programming -def tribonacci(num: int) -> list: +def tribonacci(num: int) -> list[int]: """ Given a number, return first n Tribonacci Numbers. >>> tribonacci(5) @@ -9,8 +9,7 @@ def tribonacci(num: int) -> list: >>> tribonacci(8) [0, 0, 1, 1, 2, 4, 7, 13] """ - dp = [0 for i in range(num)] - dp[0] = dp[1] = 0 + dp = [0] * num dp[2] = 1 for i in range(3, num):