由于本人大学并没有C++的学习,但目标院校的复试又是要求C++来写。所以我现在刷LeetCode都用C++来写,提前适应一下加强学习。
题解如下:
官方题解:
vector<int> newArr = nums;
int size = 0;
for(auto e: nums) size++;
for(int i = 0; i < size; i++){
newArr[i] = nums[i]*nums[i];
}
sort(newArr.begin(),newArr.end());
return newArr;
我是真没想到C++可以直接Sort,还费劲心思写了一个快排,结果调用接口有问题。又写了一个冒泡,结果跟我说第133个测试用例超时了。。。
算是学习到了。记录一下提醒自己
附加我的2B双指针写法,耗时1333ms.犯蠢了
class Solution {
public:
vector<int> sortedSquares(vector<int>& nums) {
int length = nums.size();
int k = 0;
vector<int> num;
int leftTag = 0,rightTag = 1;
for(int i=0;i<length;i++){
int right = nums[length-rightTag]*nums[length-rightTag];
int left = nums[leftTag]*nums[leftTag];
if(right>left){
num.insert(num.begin(),right);
rightTag++;
}else{
num.insert(num.begin(),left);
leftTag++;
}
}
return num;
}
};