Squares of a Sorted Array (Leetcode 977)
Problem Link: https://leetcode.com/problems/squares-of-a-sorted-array/
class Solution:
def sortedSquares(self, nums: List[int]) -> List[int]:
n=len(nums)
i=0
ans=[]
while(i<n):
if(nums[i]==0): # If there is a zero in the array
ans.append(0)
neg=i-1
pos=i+1
while(neg>=0 and pos<n):
if(abs(nums[neg])<=abs(nums[pos])):
ans.append(nums[neg]*nums[neg])
neg-=1
else:
ans.append(nums[pos]*nums[pos])
pos+=1
while(neg>=0):
ans.append(nums[neg]*nums[neg])
neg-=1
while(pos<n):
ans.append(nums[pos]*nums[pos])
pos+=1
break
elif(nums[i]>0): # If there is no zero in the array
neg=i-1
pos=i
while(neg>=0 and pos<n):
if(abs(nums[neg])<=abs(nums[pos])):
ans.append(nums[neg]*nums[neg])
neg-=1
else:
ans.append(nums[pos]*nums[pos])
pos+=1
while(neg>=0):
ans.append(nums[neg]*nums[neg])
neg-=1
while(pos<n):
ans.append(nums[pos]*nums[pos])
pos+=1
break
i+=1
if(i==n): # If all are negative numbers
for i in range(n-1,-1,-1):
ans.append(nums[i]*nums[i])
return ans
Last updated