Advertisement

LeetCode算法题(数组相关)第五题:有序数组的平方

阅读量:

问题:

对于一个已按照非递减顺序排列的整数数组 A,请生成一个由该数组中每个元素平方后构成的新数组,并确保新数组同样保持非递减的排列顺序。

复制代码
 输入:[-4,-1,0,3,10]

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

算法:

面对这道题目时,需要特别注意数组的排列方式,其为非递减顺序。若采用一种较为直接的处理方式,即先计算数组中每个元素的平方值,并将其存入一个新的数组中,随后再对这个新数组进行排序操作。然而,这样的处理方式显然忽略了题目中所强调的非递减顺序这一条件。因此,在编写程序时,我充分运用了该非递减顺序的特点,尽管实现过程相较于简单思路更为复杂。接下来将对所采用的算法进行详细说明:

以该数组为例,若对其中每个元素进行平方运算,其顺序发生变化的原因在于存在负数元素。那么是否可以将所有非负数值归置在一侧,而将负数归置在另一侧?

![](https://ad.itadn.com/c/weblog/blog-img/images/2025-05-31/dWk3Dp57UzCut6vOsmwg

全部评论 (0)

还没有任何评论哟~