Skip to content

Commit 6a45c13

Browse files
authored
Update Squares of a Sorted Array - Leetcode 977.py
1 parent f536db8 commit 6a45c13

File tree

1 file changed

+26
-24
lines changed

1 file changed

+26
-24
lines changed

Squares of a Sorted Array - Leetcode 977/Squares of a Sorted Array - Leetcode 977.py

+26-24
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,33 @@ def sortedSquares(self, nums: List[int]) -> List[int]:
1212
# Time: O(n log n)
1313
# Space: O(1)
1414

15+
# Optimal Solution for Bootcamp
16+
class Solution:
17+
def sortedSquares(self, nums: List[int]) -> List[int]:
18+
n = len(nums)
19+
L, R = 0, n-1
20+
result = [0] * n
1521

16-
# Optimal Solution
22+
for i in range(n):
23+
nums[i] = nums[i] ** 2
24+
25+
j = n-1
26+
while L <= R:
27+
if nums[L] > nums[R]:
28+
result[j] = nums[L]
29+
L += 1
30+
else:
31+
result[j] = nums[R]
32+
R -= 1
33+
34+
j -= 1
35+
36+
return result
37+
# Time: O(n)
38+
# Space: O(n)
39+
40+
41+
# Optimal Solution in YT Video
1742
class Solution:
1843
def sortedSquares(self, nums: List[int]) -> List[int]:
1944
left = 0
@@ -34,26 +59,3 @@ def sortedSquares(self, nums: List[int]) -> List[int]:
3459

3560
# Time Complexity: O(n)
3661
# Space Complexity: O(n)
37-
38-
# Optimal Solution for Bootcamp
39-
class Solution:
40-
def sortedSquares(self, nums: List[int]) -> List[int]:
41-
n = len(nums)
42-
L, R = 0, n-1
43-
result = []
44-
45-
for i in range(n):
46-
nums[i] = nums[i] ** 2
47-
48-
while L <= R:
49-
if nums[L] > nums[R]:
50-
result.append(nums[L])
51-
L += 1
52-
else:
53-
result.append(nums[R])
54-
R -= 1
55-
56-
result.reverse()
57-
return result
58-
# Time: O(n)
59-
# Space: O(n)

0 commit comments

Comments
 (0)