LeetCode 每日一题 977. 有序数组的平方

1. 题目

977. 有序数组的平方

2. 描述

给定一个按非递减顺序排序的整数数组 A,返回每个数字的平方组成的新数组,要求也按非递减顺序排序。

示例 1:

输入: [-4,-1,0,3,10]

输出: [0,1,9,16,100]

示例 2:

输入: [-7,-3,2,3,11]

输出: [4,9,9,49,121]

3. 思路

遍历数组,然后将数组元素的平方存入一个新的数组中,然后返回排序后的数组即可,主要操作是遍历(O(n)O(n))和排序(O(nlogn)O(nlogn)),最后时间复杂度为 O(nlogn)O(nlogn).

4. 实现

public int[] sortedSquares(int[] A) {
    // 声明一个 A 的等长数组用于存放平方结果
    int[] result = new int[A.length];

    // 遍历数组,将其元素的平方存到 result 中
    for (int i = 0; i < A.length; i++) {
        result[i] = A[i] * A[i];
    }

    // 数组排序
    Arrays.sort(result);
    return result;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章