题目
[主观题]
给定一个按非递减顺序排序的整数数组 A,返回每个数字的平方组成的新数组,要求也按非递减顺序排序。 示例 1: 输入:[-4,-1,0,3,10] 输出:[0,1,9,16,100] 示例 2: 输入:[-7,-3,2,3,11] 输出:[4,9,9,49,121] 函数形式如下: class Solution: def sortedSquares(self, A: List[int]) -> List[int]: pass 自己测试所写函数是否正确的代码如下:s1=Solution() lst=list(map(int,input("请输入n个整数,用空格分开").split())) print(s1.sortedSquares()) 上传答案时不用上传自己的测试代码。
非递减有序序列是一个按值从小到大进行排序的序列而且该序列中可能存在值相同的元素。本题的算法思想是:先找到适当的位置然后后移元素空出一个位置再将x插入。实现本题功能的函数如下: void insert(Sqlist&Aint nx) /*向量A的长度为n*/ { int ij; if(x>=A[n]) A[n+1]=x; /*若x大于最后的元素则将其插入到最后*/ else { i=1; while(x>=A[i])i++; /*查找插入位置i*/ for(j=njj>=i;j一一)A[j+1]=A[j]; /*移出插入x的位置*/ A[i]=x; n++; /*将x插入向量长度增1*/ } } 非递减有序序列是一个按值从小到大进行排序的序列,而且该序列中可能存在值相同的元素。本题的算法思想是:先找到适当的位置,然后后移元素空出一个位置,再将x插入。实现本题功能的函数如下:voidinsert(Sqlist&A,intn,x)/*向量A的长度为n*/{inti,j;if(x>=A[n])A[n+1]=x;/*若x大于最后的元素,则将其插入到最后*/else{i=1;while(x>=A[i])i++;/*查找插入位置i*/for(j=njj>=i;j一一)A[j+1]=A[j];/*移出插入x的位置*/A[i]=x;n++;/*将x插入,向量长度增1*/}}