977. 有序数组的平方

131 阅读1分钟

//977. 有序数组的平方 leetcode-cn.com/problems/sq… 思路:双指针,l,r 当l<r时,遍历头尾,绝对值大的加入新数组的后面

class Solution {
    public int[] sortedSquares(int[] nums) {
		int l = 0;
		int r = nums.length-1;
		int index = nums.length-1;
		int[] returnnums = new int[nums.length]; 
        
		while(l<=r){
			int lnum = nums[l];
			if(lnum<0){
				lnum = -lnum;
			}
			int rnum = nums[r];
			if(rnum<0){
				rnum = -rnum;
			}
			if(lnum<rnum){
				returnnums[index--] = rnum*rnum;
				r--;
			}else{
				returnnums[index--] = lnum*lnum;
				l++;
			}
		}
        return returnnums;
	}
}

空间复杂度O(n),时间复杂度O(n)