首页 > 编程语言 >LeetCode-Java题解 977. Squares of a Sorted Array

LeetCode-Java题解 977. Squares of a Sorted Array

时间:2023-05-28 12:33:17浏览次数:62  
标签:977 Java nums int 题解 pos newArray 数组 Sorted

题目地址:977. Squares of a Sorted Array
解题思路:
    又是一道双指针的题目,看见秒想到双指针(平方直接调用sort方法也行,但是这么写这题就没意思了)。但是,我一直在想,不增加空间消耗的情况下,如何进行排列,想了半天把自己绕进去了。开辟一个新数组,倒序放置就非常简单了。一定要利用原来数组是递增的这个有利条件,因为进行平方后原数组是“三角式”结构,即两边大,中间小,所以一边放置一个指针进行比较就可以了,数组两端要么左边最大,要么右边最大。两数打擂,大的插入新数组,并更换下一个数。需要注意的是边界条件,一定是j>=i,否则如果一起指到同一个数会丢失一个结果。

class Solution {
    public int[] sortedSquares(int[] nums) {
        int pos=nums.length-1;
        int[] newArray = new int[nums.length];
        for (int i=0,j=nums.length-1;j>=i;){
            if (nums[i]*nums[i]>nums[j]*nums[j]){
                newArray[pos]=nums[i]*nums[i];
                i++;
            }else {
                newArray[pos]=nums[j]*nums[j];
                j--;
            }
            pos--;
        }
        return newArray;
    }
}

标签:977,Java,nums,int,题解,pos,newArray,数组,Sorted
From: https://www.cnblogs.com/hooyeefam/p/17438078.html

相关文章

  • IDEA中创建java多模块项目和打包
    文章来源:https://www.jb51.net/article/210892.htm#_label7   非常感谢。一、使用springinitializr创建java工程1、启动IDEA,新建java工程,使用向导创建一个springboot框架的工程 2.设置项目信息,java版本选择8 3、勾选项目需要用到的依赖 4、设置项目名称,点击......
  • 云原生时代的Java
     Java最大的地基(护城河)是其极其强大的软件生态以及极其庞大的使用者人群。在云原生的时代下,Java的统治地位不仅没有到什么坚不可摧,无后顾之忧的程度,说Java目前处于危机四伏的地位都不为过。最根本的原因是,目前随着云原生时代的到来,有一些以前植入Java语言的基因之中的,很多的假......
  • phpcms常见问题解答
    phpcms常见问题解答1.为什么phpcms首页幻灯片怎么显示不出来?答:需要设置文章的标题图片如果设置标题图片,则可以在首页以及栏目页以图片方式链接到文章。2.自定义phpcms的标签只能是全HTML?答:在自定义标签内容中可以插入html代码,也可以插入多个函数标签或者变量标签。插入函......
  • 阅读《java并发编程实战》第十章
    例1:简单的加锁顺序导致的死锁:publicclassLeftRightDeadlock{privatefinalObjectleft=newObject();privatefinalObjectright=newObject();publicvoidleftRight(){synchronized(left){synchronized(right){......
  • Java:Jenv多版本管理工具(自由切换Java版本)
    文档https://www.jenv.be/https://github.com/jenv/jenv安装gitclonehttps://github.com/jenv/jenv.git~/.jenv编辑配置文件vim~/.bash_profile写入环境变量#jenvexportPATH="$HOME/.jenv/bin:$PATH"eval"$(jenvinit-)"#重启shellexec$SHELL-l......
  • 优先级队列的实现详解( Java 实现)
    前言优先级队列是在队列的基础上,每个元素都带有一个优先级,可以实现按照优先级高低进行存储和访问。Java提供了许多实现优先级队列的方法,例如使用堆来实现。在本篇博客中,我将介绍Java实现优先级队列实现的具体方法,以及如何使用它来解决实际问题。一、优先级队列的概念优先级队列......
  • java XML字符串和bean实体类互转
    pom引入依赖<dependency><groupId>com.fasterxml.jackson.dataformat</groupId><artifactId>jackson-dataformat-xml</artifactId><version>2.13.1</version></dependency>实体类p......
  • 用Java语言springboot框架开发工艺管理系统
    技术架构技术框架:SpringBoot2.0.0+Mybatis1.3.2+Shiro+jpa+lombok+Vue2+Mysql5.7+redis+nodejs16运行环境:jdk8+IntelliJIDEA+maven+宝塔面板宝塔部署教程回到IDEA,点击编辑器右侧maven图标,切换至prod,执行package,完成后就会在根目录里生成一个target目录,......
  • Java语言实现的springBoot汽车销售管理系统vue前端
    技术架构技术框架:springboot+mybatis+Mysql5.7+vue2+npm+node运行环境:jdk8+IntelliJIDEA+maven+宝塔面板宝塔部署教程解析一个域名,使用vscode打开front目录,修改/config/prod.env.js文件里的BASE_API字段为解析好的线上域名,执行npmrunbuild:prod打包出......
  • java 面试题目
    1:子类和父类的实例变量和方法有什么区别?2:重载和覆盖的区别,返回类型不同,可以重载吗?为什么?底层如何实现的?3:抽象类与接口的区别4:悲观锁和乐观锁5:线程安全的解决方法有哪些?读写锁6:hashcode和equals?7:java泛型8:ThreadLocal,Concurrent下面的包,原理?9:AtomicInteger原理是什......