You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+15-28Lines changed: 15 additions & 28 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -8,7 +8,7 @@ In this week's Sprint you implemented some classic and fundamental data structur
8
8
9
9
This is an individual assessment. All work must be your own. Your Challenge score is a measure of your ability to work independently using the material covered throughout this sprint. You need to demonstrate proficiency in the concepts and objectives that were introduced and that you practiced in the preceding days.
10
10
11
-
You are not allowed to collaborate during the Sprint Challenge. However, you are encouraged to follow the twenty-minute rule and seek support from your PM and Instructor in your cohort help channel on Slack. Your submitted work reflects your proficiency in the concepts and topics that were covered this week.
11
+
You are not allowed to collaborate during the Sprint Challenge. However, you are encouraged to follow the twenty-minute rule and seek support from your TL and Instructor in your cohort help channel on Slack. Your submitted work reflects your proficiency in the concepts and topics that were covered this week.
12
12
13
13
You have three hours to complete this Sprint Challenge. Plan your time accordingly.
14
14
@@ -22,7 +22,7 @@ This Sprint Challenge is split into three parts:
22
22
23
23
1. Implement a data structure called a ring buffer (more details below)
24
24
2. Optimizing some inefficient code
25
-
3.Analyzing time and space complexities from parts 1 and 2
25
+
3.Reversing the contents of a singly linked list
26
26
27
27
### Minimum Viable Product
28
28
@@ -68,37 +68,24 @@ Six seconds is an eternity so you've been tasked with speeding up the code. Can
68
68
69
69
(Hint: You might try importing a data structure you built during the week)
70
70
71
-
#### Task 3. Analyze Some Runtimes
72
71
73
-
Open up the `Data_Structures_Answers.md` file. This is where you'll jot down your answers for the runtimes of the functions/data structures you just implemented. Also include the runtime and space complexities of the original code and your optimized solution from `names.py`.
72
+
#### Task 3. Reverse a Linked List
74
73
74
+
Inside of the `reverse` directory, you'll find a basic implementation of a Singly Linked List. _Without_ making it a Doubly Linked List (adding a tail attribute), complete the `reverse_list()` function within `reverse/reverse.py` reverse the contents of the list.
75
+
76
+
For example,
77
+
```
78
+
1->2->3->None
79
+
```
80
+
would become...
81
+
```
82
+
3->2->1->None
83
+
```
84
+
85
+
While credit will be given for a functional solution, only optimal solutions will earn a ***3*** on this task.
75
86
### Stretch Problems
76
87
77
88
1. Say your code from `names.py` is to run on an embedded computer with very limited RAM. Because of this, memory is extremely constrained and you are only allowed to store names in arrays (i.e. Python lists). How would you go about optimizing the code under these conditions? Try it out and compare your solution to the original runtime. (If this solution is less efficient than your original solution, include both and label the strech solution with a comment)
78
89
79
90
80
91
### Rubric
81
-
82
-
#### Ring Buffer
83
-
84
-
- Ring buffer implementation passes the tests: 10 points total
85
-
86
-
#### Names
87
-
88
-
- Optimize with an O(n log n) runtime solution: 8 points total
89
-
- Optimize with an O(n) runtime solution: 10 points total
90
-
91
-
#### Complexity
92
-
93
-
- One point each: 8 points total
94
-
95
-
#### Stretch
96
-
97
-
-`names.py` is optimized with sub-quadratic runtime complexity and tightly constrained linear space complexity: 4 points
0 commit comments