Conversation
anselrognlie
left a comment
There was a problem hiding this comment.
✨ 💫 Looks good, Alie! I left some comments on your implementation below.
🟢
| Time Complexity: O(n) | ||
| Space Complexity: O(n) |
There was a problem hiding this comment.
✨ Great! By carefully building up the calculations and storing them for later use, we only need to perform O(n) calculations. The storage to keep those calculations is related to n (as is the converted string) giving space complexity of O(n) as well (ignoring a little bit of fiddliness related to the length of larger numbers being longer strings).
| if num == 1: | ||
| return "1" | ||
|
|
||
| list = [0,1,1] |
There was a problem hiding this comment.
✨ Nice use of a buffer slot to account for the 1-based calculation.
|
|
||
| list = [0,1,1] | ||
| count = 3 | ||
| while num >= count: |
There was a problem hiding this comment.
👀 Prefer a for loop, since we know exactly how many times this will loop.
| answer = [str(item) for item in list] | ||
| return " ".join(answer[1:]) |
There was a problem hiding this comment.
✨ Nice use of a list comprehension to convert the numeric values to strings.
Another approach would be to use the map function:
return " ".join(map(str, list[1:]))| Time Complexity: O(n) | ||
| Space Complexity: O(1) |
There was a problem hiding this comment.
✨ Notice how better time complexity this approach achieves over a "naïve" approach of checking for the maximum achievable sum starting from every position and every length. The correctness of this approach might not be apparent, so I definitely encourage reading a bit more about it. This has a fairly good explanation, as well as a description of why this is considered a dynamic programming approach (on the face it might not "feel" like one).
Since like the fibonacci sequence, we are able to maintain a sliding window of recent values to complete our calculation, we can do it with a constant O(1) amount of storage.
| current_sub = 0 | ||
| max_sub = nums[0] | ||
|
|
||
| for num in nums: |
No description provided.