day02

  1. LeetCode 977. 有序数组的平方

    解答思路:看到题目的开始,想的是顺序遍历数组,每个做平方后重新赋值,然后再用一个O(n)的排序算法完成解答,这应该是能达到效果,但是可能存在边界及性能问题。后面想到昨天的移除元素,思考是否可以用类似方法,尝试后发现没法采用类似插入法从小到大将平方后的数据重新拼装成数组,因为后面遍历的元素平方后,需要已经排好序的数组里找到合适位置并插入,这里会有一个循环,不满足题目要求的O(n)时间复杂度。只能看题解,看到一句解释,两边的元素平方后比中间的元素大,根据示例,果然如此,而且如果不能按从小到大排序,那是否可以按从大到小排序,每次比较两头的元素,取大的放新数组最后面,类似于冒泡排序了,取了数据的那一端指针移动一步,直到左指针大于右指针(此处一开始未考虑到边界条件,存在重复数据时可能出现左指针等于右指针)

posted @ 2023-07-14 01:02  lxl_mango  阅读(33)  评论(0)    收藏  举报