首页 > 其他分享 >有序数组的平方

有序数组的平方

时间:2024-05-28 13:05:01浏览次数:8  
标签:平方 right 数组 nums int result 有序 left

文章目录

有序数组的平方

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

示例 1:

输入:nums = [-4,-1,0,3,10]
输出:[0,1,9,16,100]
解释:平方后,数组变为 [16,1,0,9,100]
排序后,数组变为 [0,1,9,16,100]

解题思路

依旧是双指针,逐一找出最大值。

初始化一个result数组。

定义最左边的指针与最右边的指针,逐一找出最大值。

因为有负数的存在,所以最大值一定是在最左边或者最右边,一定不在中间。

逐一的找出最大值,插入到result的最右边。代码如下:

nums[left] * nums[left] > nums[right] * nums[right] 时 result[index–] = nums[left] * nums[left];

nums[left] * nums[left] <= nums[right] * nums[right] 时 result[index–] = nums[right] * nums[right];

详细代码如下

class Solution {
    public int[] sortedSquares(int[] nums) {
        //双指针
        //一前一后,逐一的找出数组中最大的值
        //一前一后,数组中最大的值在最前面或者最后面
        int left = 0;
        int right = nums.length - 1;
        int[] result = new int[nums.length];
        int index = result.length - 1;

        while(left <= right){//left = right 是有意义的
            if(nums[left] * nums[left] > nums[right] * nums[right]){
                result[index--] = nums[left] * nums[left];
                left++;
            }else{
                result[index--] = nums[right] * nums[right];
                right--;
            }
        }  
        return result;        
    }
}

我是小辉,24 届毕业生。当下是找工作ing,欢迎关注,持续分享。

标签:平方,right,数组,nums,int,result,有序,left
From: https://blog.csdn.net/m0_64372868/article/details/139263789

相关文章

  • leedcode【349】. 两个数组的交集——Java解法
    Problem: 349.两个数组的交集题目思路解题方法复杂度Code效果题目给定两个数组nums1和nums2,返回它们的交集。输出结果中的每个元素一定是唯一的。我们可以不考虑输出结果的顺序。示例1:输入:nums1=[1,2,2,1],nums2=[2,2]输出:[2]示例2:输入:nums1=[......
  • kafka 保证消息有序性
    具体需要从生产者和消费者两个方面来讲:生产者:1.分区机制:Kafka的核心机制之一是分区(Partition)。每个主题(Topic)可以被分割成多个分区,而消息在发布时会被追加到特定的分区中。在每个分区内部,消息是按照它们被追加的顺序来存储的,因此保证了分区内的消息顺序性。 2.分区器:生......
  • 数组
    数组1.数组概述数组是相同类型数据的有序集合数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成;其中,每一个数据称作一个数组元素,每个数组元素可以通过一个下标访问它们2.数组声明创建首先必须声明数组变量,才能在程序中使用数组。下面是声明数组变量的语法......
  • Day 6| 242.有效的字母异位词 、349. 两个数组的交集 、 202. 快乐数 、 1. 两数之和
    242.有效的字母异位词建议:这道题目,大家可以感受到数组用来做哈希表给我们带来的遍历之处。题目链接/文章讲解/视频讲解:https://programmercarl.com/0242.有效的字母异位词.html思考很简单的一道题,需要记住python获取ascii值的函数时ord()classSolution:defisAnag......
  • 一个非完全平方数应该乘上什么数才能是完全平方数?
    这是我做AtCoder的时候发现的一个问题,有感而发:首先,对于任何一个数,我们都能给它做质因数分解,也就是把他们分成一个个质因数的平方乘现在考虑一个非完全平方数,就假如它分解质因数之后的形式为:25∗34∗57那么我们把他的平方数进行模\(2\)操作之后就变成了:21∗30∗52=10显......
  • 代码随想录算法训练营第五天|242(有效的字母异位词),349(两个数组的交集),202(快乐数)
    哈希C#常用的数据结构:[]Array,ArrayList数组和动态数组List集合HashSet哈希集合(无重复值)HashTable哈希表(obj,obj的键值对)Dictionary<T,T>泛型的哈希表什么时候考虑Hash数据结构?需要高效的判断一个值是否存在在一个容器中时。容器不允许重复值(HashSet或哈希表的......
  • char数组初始化
    原文:https://www.cnblogs.com/cfans1993/p/6404034.html初始化的三种情况:charstr[10]="Hello";charstr[10]={'H','e','l','l','o','\0'};charstr[10]={'H'};charstr[10]={0};charstr......
  • Java数组
    1、数组概述数组是相同类型数据的有序集合。数组描述的是相容类型的若干个数据,按照一定的先后次序排列组合而成。其中,每一个数据称作一个数组元素,每个数组元素可以通过一个下标来访问它们。数组下标是从0开始的。2、数组声明创建首先必须声明数组变量,才能在程序中使用......
  • JSON里包含的数组中的值 (List数组或对象)转换出来并读取, 通过 hutool 中的API 方法
    hutool 是一个Java工具包,它提供了很多实用的功能,包括JSON的处理。在 hutool 中,你可以使用 cn.hutool.json.JSONUtil 类来解析和处理JSON数据。如果你想要获取JSON中的数组(JSONArray),并遍历读取其中的值(无论是基本类型还是对象),你可以按照以下步骤操作:首先,确保你的项目......
  • 调用三方接口,outputStream.write传参数中参数怎么写,在转化成字节数组之前,是A=a&B=b的
    当您调用第三方接口并通过OutputStream.write()方法发送参数时,如果接口期望的是application/x-www-form-urlencoded类型的参数(常见于POST请求中提交表单数据),那么您确实需要将参数转换成A=a&B=b这样的格式,然后再将这个字符串转换成字节数组。以下是转换和发送这种类型参数的步骤:......