我是靠谱客的博主 爱撒娇花瓣,最近开发中收集的这篇文章主要介绍Leetcode刷题java之有序数组的平方,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

题目:

给定一个按非递减顺序排序的整数数组 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之有序数组的平方所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(47)

评论列表共有 0 条评论

立即
投稿
返回
顶部