0
点赞
收藏
分享

微信扫一扫

UE使用UnLua(二)

茗越 2023-08-01 阅读 41

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

示例 1:

示例 2:

思路:不论数组中有正有负、全正还是全负,取平方后最大的数值必定在两端中。那么双指针指向首尾,倒序遍历result数组,并判断双指针数值大小,移动指针即可。

解答

class Solution {
    public int[] sortedSquares(int[] nums) {
        int[] result = new int[nums.length];
        int startIndex = 0, endIndex = nums.length - 1;
        for (int i = nums.length - 1; i >= 0; i--) {
            int startNum = Math.abs(nums[startIndex]);
            int endNum = Math.abs(nums[endIndex]);
            if (startNum < endNum) {
                result[i] = endNum * endNum;
                endIndex--;
            } else {
                result[i] = startNum * startNum;
                startIndex++;
            }
        }
        return result;
    }
}
举报

相关推荐

0 条评论