本篇文章为你整理了力扣 977.有序数组的平方(Java)()的详细内容,包含有 力扣 977.有序数组的平方(Java),希望能帮助你了解 力扣 977.有序数组的平方(Java)。
977. 有序数组的平方
给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。
我采用的是双指针进行解答
首先应明确,数组是有序数组,那么在考虑复数的情况下,平方后的最小值一定在数组的两端,那么便可以设置左指针left与右指针right,并设置数组result对平方后排序的结果进行存储,也应当设置temp作为中间变量方便数组result的存储
对于循环条件left = right便是要进行完全数组的遍历
在循环中,我们应当对最左端与最右端数值的平方大小进行判断,取较大的一方存入数组result中,这里需要注意的是,由于result数组我们是按照递增数组进行排序的,所以temp = result.legnth -1,在存入一个数值后,进行temp--操作,然后按照存入的是最右端还是最左端进行相应操作,以便进行下一个数据的判断。
若想无脑做的话可以直接将每个数据的平方求出,再将数组进行排序,这里并未采用
class Solution {
public int[] sortedSquares(int[] nums) {
int left = 0;
int right = nums.length - 1;
int[] result = new int[nums.length];
int temp = result.length - 1;
while(left = right){
if(nums[left] * nums[left] nums[right] * nums[right]){
result[temp] = nums[left] * nums[left];
temp--;
left++;
else{
result[temp] = nums[right] * nums[right];
temp--;
right--;
return result;
以上就是力扣 977.有序数组的平方(Java)()的详细内容,想要了解更多 力扣 977.有序数组的平方(Java)的内容,请持续关注盛行IT软件开发工作室。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。