算法day04

95 阅读1分钟

给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。

image.png

因为数组是递增数列,所以只需要考虑两端,采用双指针的方法。并且申请一个新的数组。

code-thinking.cdn.bcebos.com/gifs/977.%E…

int left = 0, right = A.length-1;
      int k = A.length-1;
      int[] result = new int[A.length];
      while(left <= right){
          if(A[left]*A[left] > A[right]*A[right]){
            result[k--] = A[left]*A[left];
            left++;
          }else{
              result[k--] = A[right]*A[right];
              right--;
          }
      }
      return result;