代码随想录DAY02
977 有序数组的平方
暴力解法之如何快排?
看了答案后是用Array自带的sort函数。
受视频启示:
由于原数组是非降序排列,所以平方以后最大的数肯定是在两边 (此题的基础原则),于是想到将最后一个元素和第一个元素比较,如果最后的元素大于第一个元素,则再比较倒数第二个,如果最后一个元素小于第一个,则交换位置,依次进行。此种解法不需要创建新数组。
class Solution {
public int[] sortedSquares(int[] nums) {
for(int i = 0; i <= nums.length - 1; i ++){
nums[i] = nums[i] * nums[i];
}
int temp = 0;
int k = nums.length - 1;
while ( 0 < k){
if (nums[0] > nums[k]){
temp = nums[k];
nums[k] = nums[0];
nums[0] = temp;
}