第二天
977. 有序数组的平方
class Solution {
public:
vector<int> sortedSquares(vector<int>& nums) {
// //方法一:先平方再排序
// vector<int> ans;
// for(int num : nums) {
// ans.push_back(num * num);
// }
// sort(ans.begin(), ans.end());
// return ans;
//方法二:双指针
int n = nums.size();
vector<int> ans(n);
for(int left = 0, right = n - 1,pos = n - 1; left <= right;) {
if (nums[left] * nums[left] < nums[right] * nums[right]) {
ans[pos] = nums[right] * nums[right];
--right;
} else {
ans[pos] = nums[left] * nums[left];
++left;
}
--pos;
}
return ans;
}
};
189. 轮转数组
class Solution {
public:
void reverse(vector<int>& nums, int start, int end) {
while (start < end) {
swap(nums[start], nums[end]);
start += 1;
end -= 1;
}
}
void rotate(vector<int>& nums, int k) {
//先反转,再切分,再各自反转,
k %= nums.size();
reverse(nums, 0, nums.size() - 1);
reverse(nums, 0, k - 1);
reverse(nums, k, nums.size() - 1);
}
};
第三天
第四天
第五天