本文共 742 字,大约阅读时间需要 2 分钟。
给定一个整数数组,目标是将其每个元素平方后进行排序。以下是优化后的实现代码及其详细解释:
import java.util.Arrays;public class Solution { public int[] SquareArray(int[] A) { // 处理空数组或null情况 if (A == null || A.length == 0) { return A; } // 遍历数组元素并平方 for (int i = 0; i < A.length; i++) { A[i] = A[i] * A[i]; } // 对修改后的数组进行排序 Arrays.sort(A); return A; }} 空数组处理:首先检查输入数组是否为空或为null。如果是,则直接返回原数组,避免空操作。
平方操作:使用一个循环遍历数组中的每个元素,计算每个元素的平方并存储在数组中。
排序:调用Arrays.sort(A)方法对修改后的数组进行排序。该方法利用快速排序算法,时间复杂度为O(n log n)。
该算法的时间复杂度主要由两部分组成:
因此,整体算法的时间复杂度为O(n log n)。
该算法的空间复杂度为O(1),因为只使用了固定大小的额外空间(主要用于排序过程中的辅助空间)。
转载地址:http://uqds.baihongyu.com/