概述
题目:
给定一个按非递减顺序排序的整数数组 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之有序数组的平方所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复