Create Target Array in the Given Order LeetCode solution in Python

1
class Solution:
2
def createTargetArray(self, nums, index):
3

4
def merge(arr, low, mid, high):
5
L, R = arr[low : mid + 1], arr[mid + 1 : high + 1]
6
i = j = 0
7
k = low
8

9
while i < len(L) and j < len(R):
10
if L[i][0] + j >= R[j][0]:
11
arr[k] = R[j]
12
j += 1
13
else:
14
L[i][0] += j
15
arr[k] = L[i]
16
i += 1
17
k += 1
18

19
while i < len(L):
20
L[i][0] += j
21
arr[k] = L[i]
22
i += 1
23
k += 1
24

25
while j < len(R):
26
arr[k] = R[j]
27
j += 1
28
k += 1
29

30
def mergeSort(arr, low, high):
31
if low < high:
32
mid = (low + high) // 2
33
mergeSort(arr, low, mid)
34
mergeSort(arr, mid + 1, high)
35
merge(arr, low, mid, high)
36

37
arr = [[index[i], nums[i]] for i in range(len(nums))]
38
mergeSort(arr, 0, len(nums) - 1)
39

40
for x in arr:
41
nums[x[0]] = x[1]
42

43
return nums

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0