zoukankan      html  css  js  c++  java
  • LeetCode 977. Squares of a Sorted Array

    977. Squares of a Sorted Array(有序数组的平方)

    题目:

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

      示例 1:

      输入:[-4,-1,0,3,10]
      输出:[0,1,9,16,100]
    

      示例 2:

      输入:[-7,-3,2,3,11]
      输出:[4,9,9,49,121]
    

      提示:

      1.   1 <= A.length <= 10000
      2.   -10000 <= A[i] <= 10000
      3.   A 已按非递减顺序排序。

    思路:

      非递减顺序,再加上存在负数,可以通过在两端比较:先取head和tail表示两端的位置,比较两个数的平方,平方较大者,放到新数组的靠后位置。

      (真要偷懒可以直接用sort,但是这样就没啥意义了)

    代码:

     1     public int[] sortedSquares(int[] A) 
     2     {
     3         int len = A.length;
     4         int head = 0;
     5         int tail = len-1;
     6         int [] B = new int [len] ;
     7         while(head <= tail)
     8         {
     9             len--;
    10             int i = A[head]*A[head];
    11             int j = A[tail]*A[tail];
    12             if(i>j)
    13             {
    14                 B[len] = i;
    15                 head++;
    16             }
    17             else
    18             {
    19                 B[len] = j;
    20                 tail--;
    21             }
    22         }
    23         return B;
    24     }
    View Code
  • 相关阅读:
    75
    74
    接口理论知识
    软件测试计划的编写
    软件测试的生命周期&软件测试工作流程
    软件测试分类体系系统学习
    Mysql之高级查询
    数据库的DML操作
    Mysql之数据完整性约束
    Mysql之DDL操作
  • 原文地址:https://www.cnblogs.com/blogxjc/p/10966177.html
Copyright © 2011-2022 走看看