其他分享
首页 > 其他分享> > 有序数组的平方

有序数组的平方

作者:互联网

有序数组的平方

977. 有序数组的平方

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

方法1:暴力排序

每个数平方之后,排个序

方法2: 双指针法

class Solution {
    public int[] sortedSquares(int[] nums) {
        //双指针,左右平方对比,按顺序排列进数组
        int n = nums.length;
        int left = 0, right = n - 1, i = n - 1;
        int[] result = new int[n];//创建放置排序结果的数组
        while (left <= right) {
            if (nums[left] * nums[left] < nums[right] * nums[right]) {
                result[i] = nums[right] * nums[right];
                right--;//右指针向左
                i--;
            } else {
                result[i] = nums[left] * nums[left];
                left++;//左指针向右
                i--;
            }
        }
        return result;
    }
}

标签:平方,数组,nums,int,复杂度,有序,排序
来源: https://www.cnblogs.com/chachan53/p/16230202.html