Squares of a Sorted Array

Posted: 10 Mar, 2021
Difficulty: Easy

PROBLEM STATEMENT

Try Problem

You are given an array/list ‘ARR’ of ‘N’ integers. You have to generate an array/list containing squares of each number in ‘ARR’, sorted in increasing order.

For example :

Input:
‘ARR’ = [-6,-3, 2, 1, 5] 

If we take a square of each element then the array/list will become [36, 9, 4, 1, 25].
Then the sorted array/list will be [1, 4, 9, 25, 36].

Output :
[1, 4, 9, 25, 36].

Input Format:

The first line of input contains a single integer ‘T’, representing the number of test cases.
Then the ‘T’ test cases follow.

The first line of each test case contains a single integer ‘N’ denoting the size of ‘ARR’.

The second line contains ‘N’ space-separated distinct integers denoting the array elements.

Output format:

For each test case, print the array elements separated by a single space.

The output of every test case will be printed in a separate line. 

Note :

You don’t have to print anything, it has already been taken care of. Just implement the given function.

Constraints

1 <= T <=100
1 <= N <= 10^4
-10^4 <=  ‘ARR[i]’ <= 10^4

Where 'ARR[i]' denotes the value of 'ARR' at index 'i'. 

Time limit: 1 sec
Approach 1

Approach: The idea is very simple. In the first step, we will traverse the whole array/list ‘ARR’ and replace each element with its square. Then in the second step sort ‘ARR’ and return it.

 

Algorithm:

  1. Iterate over ‘ARR’ for 0 <= i < ‘N’ and do:
    • Set ‘ARR[i]’ = ‘ARR[i]’ * ‘ARR[i]’.
  2. Sort the array ‘ARR’.
  3. Return ‘ARR’.
Try Problem