1.方法一(无脑)
public static int[] sortedSquares(int[] nums) { for (int i = 0; i2.双指针
因为数组是有序的,所以最大值在两侧取到,所以每次都可以取到平方后最大的数,双指针从两边开始遍历。
public static int[] sortedSquares(int[] nums) { int l = nums.length - 1; int nums1[] = new int [nums.length]; for (int i = 0, j = l; i <= j;){ if (nums[i]*nums[i]>nums[j]*nums[j]) { nums1[l--] = nums[i]*nums[i]; i++; }else { nums1[l--] = nums[j]*nums[j]; j--; } } return nums1; }有脑子真好【狗头】
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)