class Solution {
public:
vector<int> sortedSquares(vector<int>& nums) {
for(int i = 0 ;i < nums.size() ; i++)
{
nums[i]*=nums[i];
}
for (int i = 0; i < (nums.size()) - 1; i++)
{
//内层循环对比 次数 = 元素个数 - 当前轮数 -1
for (int j = 0; j < (nums.size()) - i - 1; j++)
{
//如果第一个数字,比第二个数字大,交换两个数字
if (nums[j] > nums[j + 1])
{
int temp = nums[j];
nums[j] = nums[j + 1];
nums[j + 1] = temp;
}
}
}
return nums;
}
};
我写的代码虽然能达到结果,但是可能时间复杂度高,因为是n的平方
class Solution {
public:
vector<int> sortedSquares(vector<int>& nums) {
vector<int>yyl;
for(int i:nums)
{
yyl.push_back(i * i);
}
sort(yyl.begin(),yyl.end());
return yyl;
}
};
最后更改了答案通过了;