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;
}

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