【数组题】给定一个按非递减顺序排序的整数数组 A,返回每个数字的平方组成的新数组,要求也按非递减顺序排序

给定一个按非递减顺序排序的整数数组 A,返回每个数字的平方组成的新数组,要求也按非递减顺序排序。
示例 1:
输入:[-4,-1,0,3,10]
输出:[0,1,9,16,100]
示例 2:
输入:[-7,-3,2,3,11]
输出:[4,9,9,49,121]
提示:
1 <= A.length <= 10000
-10000 <= A[i] <= 10000
A 已按非递减顺序排序。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/squares-of-a-sorted-array
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

怕了怕了


???

思路是先找到正负数的分界线,通过双指针从内往外排序。然而总是有各种不同情况的越界

最后参考leedcode上题解的代码

    int length = A.size();
    vector<int> ans(length);
    int i = 0, j = length - 1, k = length - 1;
    while (k >= 0) {
        int a = A[i] * A[i];
        int b = A[j] * A[j];
        if (a > b) {
            ans[k] = a;
            i++;
        }
        else {
            ans[k] = b;
            j--;
        }
        k--;
    }
    return ans;
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容