Skip to content

Commit 2d2a868

Browse files
authored
Create build-array-from-permutation.py
1 parent 97a06df commit 2d2a868

File tree

1 file changed

+30
-0
lines changed

1 file changed

+30
-0
lines changed
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
# Time: O(n)
2+
# Space: O(1)
3+
4+
# inplace solution
5+
class Solution(object):
6+
def buildArray(self, nums):
7+
"""
8+
:type nums: List[int]
9+
:rtype: List[int]
10+
"""
11+
for i in xrange(len(nums)):
12+
prev, curr = i, nums[i]
13+
while curr >= 0 and curr != i:
14+
nums[prev], nums[curr] = ~nums[curr], ~nums[prev] if prev == i else nums[prev]
15+
prev, curr = curr, ~nums[prev]
16+
for i in xrange(len(nums)):
17+
if nums[i] < 0:
18+
nums[i] = ~nums[i]
19+
return nums
20+
21+
22+
# Time: O(n)
23+
# Space: O(1)
24+
class Solution2(object):
25+
def buildArray(self, nums):
26+
"""
27+
:type nums: List[int]
28+
:rtype: List[int]
29+
"""
30+
return [nums[x] for x in nums]

0 commit comments

Comments
 (0)