题目:
给定一个按非递减顺序排序的整数数组 A,返回每个数字的平方组成的新数组,要求也按非递减顺序排序。
示例 1:
输入:[-4,-1,0,3,10]
输出:[0,1,9,16,100]
示例 2:
输入:[-7,-3,2,3,11]
输出:[4,9,9,49,121]
思路:
因为是已经排好序的了,可以使用双指针,一个从左开始,一个从右开始,并用一个辅助数组来存储结果。
代码:
class Solution {
public int[] sortedSquares(int[] A) {
//辅助数组
int[] result=new int[A.length];
//左指针
int left=0;
//右指针
int right=A.length-1;
//辅助数组的位置
int i=A.length-1;
while(left<=right)
{
if((A[left]*A[left])>=(A[right]*A[right]))
{
result[i]=A[left]*A[left];
left++;
}else
{
result[i]=A[right]*A[right];
right--;
}
i--;
}
return result;
}
}
最后
以上就是爱撒娇花瓣最近收集整理的关于Leetcode刷题java之有序数组的平方的全部内容,更多相关Leetcode刷题java之有序数组内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复