leetcode977-Squares of a Sorted Array

题目

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

示例 1:

输入:nums = -4,-1,0,3,10

输出:0,1,9,16,100

解释:平方后,数组变为 16,1,0,9,100

排序后,数组变为 0,1,9,16,100

分析

这道题目用双指针遍历可以很好的解决,因为平方以后最小的元素肯定是在中间,所以每次只要比较首尾俩个元素的大小取最大值即可

java 复制代码
public class squaresofaSortedArray {
	public static void main(String[] args) {
		int[] arr = {-4,-1,0,3,10};
		int[] brr = getArray(arr);
		for(int i = 0;i<brr.length;i++) {
			System.out.println(brr[i]);
		}
	}
	public static int[] getArray(int[] arr) {
		int start = 0;
		int end = arr.length - 1;
		int[] brr = new int[arr.length];
		int j = arr.length - 1;
		while(start <= end) {
			if(Math.abs(arr[start]) > Math.abs(arr[end])) {
				brr[j--] = arr[start] * arr[start];
				start++;
			} else {
				brr[j--] = arr[end] * arr[end];
				end--;
			}
		}
		return brr;
	}
}
相关推荐
CodeStats3 分钟前
从 CPU 指令到 JVM 进程:彻底讲透 Java 执行 main 方法时,类加载、主线程、栈帧入栈的完整底层逻辑
java·linux·开发语言
摇滚侠3 分钟前
Spring 零基础入门到进阶 基于注解管理 Bean 38-43
xml·java·后端·spring·intellij-idea
happymaker062610 分钟前
LeetCodeHot100——42.接雨水
算法
kyriewen11 分钟前
手写 call、apply、bind:从原理到实现,附 3 个最容易忽略的边界情况
前端·javascript·面试
SamDeepThinking17 分钟前
我们当年是如何真实落地BFF的?
java·后端·架构
胡萝卜术19 分钟前
从内存视角重新认识 JavaScript 数据类型:一份深度学习笔记
前端·javascript·面试
码语智行19 分钟前
Shapefile获取空间数据和中心点坐标
java·arcgis
caoyc20 分钟前
RAG 赛道全景扫描:ragflow 一骑绝尘、微软谷歌跟进乏力、下半场属于 Agent
java
Waay28 分钟前
K8s ETCD 详解|备份恢复+静态Pod原理+kubectl查询底层流程(面试必考)
面试·kubernetes·etcd