977. 有序数组的平方


977. 有序数组的平方

难度简单 209

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

示例 1:

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

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

解释:平方后,数组变为 [16,1,0,9,100]

排序后,数组变为 [0,1,9,16,100]

双指针

    public int[] sortedSquares(int[] nums) {
        int n = nums.length;
        int[] ans = new int[n];
        for (int i = 0, j = n - 1, pos = n - 1; i <= j;) &#123;
            if (nums[i] * nums[i] > nums[j] * nums[j]) &#123;
                ans[pos] = nums[i] * nums[i];
                ++i;
            &#125; else &#123;
                ans[pos] = nums[j] * nums[j];
                --j;
            &#125;
            --pos;
        &#125;
        return ans;
    &#125;

作者:LeetCode-Solution
链接:https://leetcode-cn.com/problems/squares-of-a-sorted-array/solution/you-xu-shu-zu-de-ping-fang-by-leetcode-solution/

平方再排序

public int[] sortedSquares(int[] nums) &#123;
        int[] ans = new int[nums.length];
        for (int i = 0; i < nums.length; ++i) &#123;
            ans[i] = nums[i] * nums[i];
        &#125;
        Arrays.sort(ans);
        return ans;
    &#125;

作者:LeetCode-Solution
链接:https://leetcode-cn.com/problems/squares-of-a-sorted-array/solution/you-xu-shu-zu-de-ping-fang-by-leetcode-solution/

文章作者:   future
版权声明:   本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 future !
 上一篇
125. 验证回文串 125. 验证回文串
125. 验证回文串难度简单 给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。 说明:本题中,我们将空字符串定义为有效的回文串。 示例 1: 输入: “A man, a plan, a canal: Pana
下一篇 
226. 翻转二叉树 226. 翻转二叉树
226. 翻转二叉树难度简单 774 翻转一棵二叉树。 示例: 输入: 4 /   \ 2     7 / \   / \ 1   3 6   9 输出: 4 /   \ 7     2 / \   / \ 9   6 3   1
  目录