代码
class Solution {
public:
vector<int> sortedSquares(vector<int>& nums)
{
//先平方再排序
//平方
for(int i=0;i<nums.size();++i)
nums[i]=nums[i]*nums[i];//平方
/*//冒泡排序:升序,双指针
int temp=0;
for(int i=0;i<nums.size();++i)
for(int j=i+1;j<nums.size();++j)
{
if(nums[i]>nums[j])
{
//交换
temp=nums[i];
nums[i]=nums[j];
nums[j]=temp;
}
}*/
sort(nums.begin(),nums.end());//快速排序
return nums;
}
};
思路
暴力排序
数的平方不用考虑正负号
一开始打算先对每个数进行平方计算后,再使用冒泡排序来进行升序排序,最后执行代码的结果是对的,但是提交时超出时间限制,即执行的时间超过1s.
看评论别人的解法发现可以直接使用vector库的快速排序函数sort()。更改后运行成功。