您当前的位置: 首页 > 

郭梧悠

暂无认证

  • 1浏览

    0关注

    402博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

有序数组的平方

郭梧悠 发布时间:2019-03-27 16:42:09 ,浏览量:1

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

示例 1:

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

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

大致看了下该题在力扣的评论,先平方,然后再sort的解题代码还很多。其实这应该不是本题的题意,要不然没必要强调是非递减顺序排序。在这里三种情况:纯正数数组,纯负数数组,正负混合的数组。

对于纯正数数组直接代码如下:

        int length = A.length;
		int res[] = new int[length];
		//都是正数,含0
		if(A[0]>=0) {
			for(int i=0;i=0) {
			for(int i=0;i= 0) {
		   //谁大取谁
			if (leftSquare >= rightSquare) {
				res[resIndex] = leftSquare;
				left++;
				fromLeft = true;
			} else {
				res[resIndex] = rightSquare;
				right--;
				fromLeft = false;
			}
			
			resIndex--;
			//防止数组越界
			if(left>length-1) {
				break;
			}
			
			//防止重复对leftSquare或者rightSquare 计算
			if (fromLeft) {
				leftSquare = (int) Math.pow(A[left], 2);
			} else {
				rightSquare = (int) Math.pow(A[right], 2);
			}

		}//end while

		return res;
关注
打赏
1663674776
查看更多评论
立即登录/注册

微信扫码登录

0.0358s