当前位置: 首页 > article >正文

【java】实战-力扣题库:有序数组的平方

问题描述

给你一个按 非递减顺序 排序的整数数组 

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


问题分析:

既然给定的是一个 非递减顺序的数组

我们可以使用双指针 , 一个指向左边,一个指向右边,比较两边平方后的大小。

哪个大,就把那个数放到当前数组的后面

i--;

即可实现平方后数组 非递减。


代码实现

class Solution {
    public int[] sortedSquares(int[] nums) {
        int right=nums.length-1;
        int left=0;
        int[] num = new int[nums.length];
        int i=num.length-1;
        while(left<=right){
            if(nums[left]*nums[left]>nums[right]*nums[right]){
                //left指向的数值平方之后数值大
                num[i]=nums[left]*nums[left];
                i--;
                left++;
            }else{
                 num[i]=nums[right]*nums[right];
                i--;
                right--;
            }
        }
        return num;
    }
}


http://www.kler.cn/a/384415.html

相关文章:

  • Ubuntu笔记-auto remove
  • 数据结构:七种排序及总结
  • 封装axios、环境变量、api解耦、解决跨域、全局组件注入
  • HTML前端页面设计静态网站-仿百度
  • [复健计划][紫书]Chapter 7 暴力求解法
  • Java学习者的福音:SpringBoot教学辅助平台
  • 在Ubuntu22.04上使用Qt Creator开发ROS2项目
  • Unity性能优化 -- 性能分析工具
  • 数据结构---排序(下)
  • 【Python专题】Python处理视频的分辨率
  • 【青牛科技】GC3911替代LV8548在摇头机、舞台灯、打印机和白色家电等产品上的应用分析
  • 高级java每日一道面试题-2024年10月27日-Redis篇-jedis和redisson有哪些区别?
  • CSS中综合练习(基础学校完整静态网页教程)!!
  • 在vscode中如何利用git 查看某一个文件的提交记录
  • 关于几种卷积
  • 场馆场地预定预约源码全开源uniapp+搭建教程
  • 全面解析Flutter中的Stream用法及实际应用
  • ssm070基于SSM框架的校园代购服务订单管理系统的设计与实现+vue(论文+源码)_kaic
  • 开源数据库 - mysql - innodb源码阅读 - 线程启动
  • 【Hive sql 面试题】现有用户登录记录表,请查询出用户连续三天登录的所有数据记录(难)
  • css background-image背景图片轮播
  • linux常用指令整理
  • ReactPress:重塑内容管理的未来
  • 【论文阅读】火星语义分割的半监督学习
  • 【一站式学会Kotlin】第二十六 Kotlin枚举类和封闭类
  • AI Prompt如何帮你提升论文中的逻辑推理部分?