其他分享
首页 > 其他分享> > 977.有序数组的平方(切忌错误遍历方法细节)

977.有序数组的平方(切忌错误遍历方法细节)

作者:互联网

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

要求时间复杂度 O(n)

示例 1: 输入:nums = [-4,-1,0,3,10] 输出:[0,1,9,16,100] 解释:平方后,数组变为 [16,1,0,9,100],排序后,数组变为 [0,1,9,16,100]

示例 2: 输入:nums = [-7,-3,2,3,11] 输出:[4,9,9,49,121]

参考代码随想录:problems/0977.有序数组的平方.md · programmercarl/leetcode-master(代码随想录出品) - Gitee.com

总方法思路:利用双指针,在数组两端设置初始指针,由于两侧的值必有最大值,故只需比较两指针所指位置的值的大小,取较大者放置在新数组末尾即可(重复迭代)

双指针图示

错误反思:自己第一写时,非常不严谨地在遍历数组时同时进行了修改操作(而不是仅仅读取数据复制到新数组中),导致了非常低级的错误,且没有意识到(太菜了太菜了)

标签:977,平方,遍历,nums,16,数组,100,切忌,指针
来源: https://www.cnblogs.com/Linanjing/p/16319154.html