01数组:977、有序数组的平方

977、有序数组的平方

文章目录

    • 977、有序数组的平方
      • 方法一:暴力法
      • 方法二:双指针法

重点:平方后最大数只能出现在两边

    1. 暴力法:for循环平方后,进行排序
    1. 双指针:双指针指向两边,哪个大就平方后放入新数组(倒着放入)

方法一:暴力法

方法二:双指针法

        public int[] sortedSquares(int[] nums) {
            int left = 0, right = nums.length - 1;
            int[] res = new int[nums.length];
            int index = nums.length - 1;
            while (left <= right) {  //需要判断最中间的数字
                if (nums[left] * nums[left] > nums[right] * nums[right]) {  //左右两边那边大
                    res[index--] = nums[left] * nums[left];  //大的放入结果
                    left++;//改变索引位置
                } else {
                    res[index--] = nums[right] * nums[right];
                    right--;
                }
            }
            return res;
        }

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