Links
Go to my solution
Go to the question on LeetCode
My Thoughts
What Went Well
I came up with two different approaches to the problem using techniques I learned about this year, so I am glad I got some practice with them.
Algorithm Description
Zip (built-in function) - Returns a zip object generator, which contains pairs of the index i’s of each input list up to the length of the shortest list.
Visual Examples
Zip in action, click to view
Solution Statistics
Time Spent Coding
3 minutes
Time Complexity
O(n) - We must iterate through each element in index/nums lists and again to add their elements to the return list, but the zip generator access each element at access time, meaning we only iterate through each list once, resulting in the O(n) time complexity. If the zip operator did not do this, the time complexity would be O(2 * n), which would still reduce to O(n).
Space Complexity
O(n) - We must store a return list containing each element in the nums list, resulting in the O(n) space complexity since both the nums and index list have the same number of elements.
Runtime Beats
88.65% of other submissions
Memory Beats
87.23% of other sumbissions
Solution
1
2
3
4
5
6
7
8
9
10
11
12
13
class Solution(object):
def createTargetArray(self, nums, index):
ret = []
for i,n in zip(index,nums):
ret.insert(i,n)
return ret
# ret = []
# for i, insert_index in enumerate(index):
# ret.insert(insert_index, nums[i])
# return ret