https://leetcode.com/problems/squares-of-a-sorted-array/
Given an integer array sorted in non-decreasing order, return an array of the squares of each number sorted in non-decreasing order.nums
내림차순이 아닌 순서로 정렬된 정수 배열이 지정되면, 정수를 제곱하고 오름차순으로 정렬한 배열을 반환한다.
Example 1:
Input: nums = [-4,-1,0,3,10]
Output: [0,1,9,16,100]
Explanation: After squaring, the array becomes [16,1,0,9,100].
After sorting, it becomes [0,1,9,16,100].
Example 2:
Input: nums = [-7,-3,2,3,11]
Output: [4,9,9,49,121]
1.곱한다.
2.정렬한다.
자바입니다.
class Solution {
public int[] sortedSquares(int[] nums) {
for(int i=0; i<nums.length;i++){
//nums[i]=(int)Math.pow(nums[i],2); //1번
nums[i]=nums[i]*nums[i]; //2번
}
Arrays.sort(nums); //Arrays.sort 는 배열을 오름차순으로 정렬한다.
return nums;
}
}
두 가지 방식으로 풀었습니다. 같은 로직인 데 속도차이가 난다. Math.pow를 사용한 방법이 메모리를 10MB 정도 더 먹는다. Array.sort 로 정렬하지 않고 직접 짰으면 메모리 효율이 좋을 듯 합니다.