首页 > 试题广场 >

平方升序数组

[编程题]平方升序数组
  • 热度指数:1246 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
给定一个长度为 n 的升序数组 nums ,请你算出这个数组中所有数的平方组成的新的数组,要求也按照升序。

数据范围: ,数组中的数都满足
示例1

输入

[1,0,1,2,3]

输出

[0,1,1,4,9]
示例2

输入

[5,4,3,2,1]

输出

[1,4,9,16,25]
数组中的数都满足 0 \le nums_i \le 10^4 \0≤numsi≤104,怎么还有负数?

发表于 2022-07-06 12:22:24 回复(0)
import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param nums int整型ArrayList 
     * @return int整型ArrayList
     */
    public ArrayList<Integer> sortedArray (ArrayList<Integer> nums) {
        // write code here
        ArrayList<Integer> ans = new ArrayList<>();
        for(int i = 0;i < nums.size();i++){
            int val = nums.get(i);
            ans.add(val*val);
        }
        Collections.sort(ans);
        return ans;
    }
}

发表于 2022-05-08 09:15:37 回复(0)
class Solution:
    def sortedArray(self , nums: List[int]):
        a,b=0,len(nums)
        a1,c=b-1,b-1
        res=[float('inf')]*b
        while c>=0:
         if nums[a]*nums[a]< nums[a1]*nums[a1] :
            res[c]=nums[a1]*nums[a1]
            a1-=1
         else:
            res[c]=nums[a]*nums[a]
            a+=1
         c-=1

        return res
编辑于 2024-02-15 23:16:59 回复(0)
记得把第三行注释掉
class Solution:
    def sortedArray(self , nums: List[int]) -> List[int]:
        # write code here
        news=[]
        for i in nums:
            news.append(pow(i,2))
        news.sort()
        return news
发表于 2023-08-21 21:36:46 回复(0)
package main
import "sort"

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param nums int整型一维数组 
 * @return int整型一维数组
*/
func sortedArray( nums []int ) []int {
    for i,x:=range nums{
        nums[i]*=x
    }
    sort.Ints(nums)
    return nums
}

发表于 2023-03-09 08:47:39 回复(0)
/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param nums int整型一维数组 
 * @param numsLen int nums数组长度
 * @return int整型一维数组
 * @return int* returnSize 返回数组行数
 */
int comp(const void*a,const void*b)
{
    if((*(int*)a)<0)
        (*(int*)a)=-(*(int*)a);
    if((*(int*)b)<0)
         (*(int*)b)=-(*(int*)b);
return *(int*)a-*(int*)b;
}
int* sortedArray(int* nums, int numsLen, int* returnSize ) {
    // write code here
    qsort(nums,numsLen,sizeof(int),comp);
    int *ans=(int *)malloc(sizeof(int)*numsLen);
    for(int i=0;i<numsLen;i++){
        ans[i]=nums[i]*nums[i];
    }
    *returnSize=numsLen;
    return ans;
}

发表于 2022-12-24 10:35:24 回复(0)
public ArrayList<Integer> sortedArray (ArrayList<Integer> nums) {
    // write code here
    ArrayList<Integer> res = (ArrayList<Integer> )(nums.stream().map(x -> x * x).collect(Collectors.toList()));
    Collections.sort(res);
    return res;
}


发表于 2022-08-28 15:04:27 回复(0)
class Solution:
    def sortedArray(self , nums: List[int]) -> List[int]:
        # write code here
        return sorted(list(map(lambda x:x**2, nums)))

发表于 2022-07-08 23:55:10 回复(0)
class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param nums int整型vector 
     * @return int整型vector
     */
    vector<int> sortedArray(vector<int>& nums) {
        // write code here   
        for(int i=0;i<nums.size();i++)
        {
            nums[i]*=nums[i];
        }
        sort(nums.begin(),nums.end());
        return nums;
    }
};
发表于 2022-07-01 10:31:51 回复(0)
# -*- coding: utf-8 -*-


#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
#
# @param nums int整型一维数组
# @return int整型一维数组
#
class Solution:
    """
    题目:
        https://www.nowcoder.com/practice/1cc21a074bdd41bd9b9de50d510d6030?tpId=196&tqId=40456&rp=1&ru=/exam/oj&qru=/exam/oj&sourceUrl=%2Fexam%2Foj%3Fpage%3D8%26tab%3D%25E7%25AE%2597%25E6%25B3%2595%25E7%25AF%2587%26topicId%3D196&difficulty=undefined&judgeStatus=undefined&tags=&title=
    算法:
        平方 + 排序
    复杂度:
        时间复杂度:O(nlogn)
        空间复杂度:O(n)
    """

    def sortedArray(self, nums):
        # write code here
        res = [num * num for num in nums]

        res.sort()

        return res


if __name__ == "__main__":
    sol = Solution()

    # nums = [1, 0, 1, 2, 3]

    nums = [5, 4, 3, 2, 1]

    res = sol.sortedArray(nums)

    print res

发表于 2022-06-27 10:53:18 回复(0)
class Solution:
    def sortedArray(self , nums: List[int]) -> List[int]:
        # write code here
        return sorted([n**2 for n in nums])

发表于 2022-04-22 16:35:48 回复(0)