代码随想录算法训练营Day2:977有序数组、209长度最小的子数组、59螺旋矩阵||

(1)977有序数组

文章链接:代码随想录 (programmercarl.com)

思考:题目中提到了该数组为有序数组,那么在进行平方后,最大值一定是在数组的最左边或者最左边,所以用双指针进行比较。

Java代码:

class Solution {
    public int[] sortedSquares(int[] nums) {
        int[] result = new int[nums.length];
        int left = 0;
        int right = nums.length - 1;
        int index = result.length - 1;//结果数组的指针
        //区间坚持左闭右闭的原则
        while(left<=right && index >= 0){
            if(nums[left]*nums[left] >= nums[right]*nums[right]){
                result[index] = nums[left]*nums[left];
                index--;
                left++;
            }
            else i

你可能感兴趣的:(算法,leetcode,数据结构)