标题链接:

leetcode.cn/problems/sq…

标题描述:

算法每日一题笔记 —— 977.有序数组的平方

回答:

两种解法均手打了一遍:

方法一:直接排序

vector<int> sortedSquares(vector<int>& nums) {
    int size = nums.size();
    for(int i = 0; i < size; i  ) {
        nums[i] = nums[i] * nums[i];
    }
    sort(nums.begin(), nums.end());
    return A;
}

方法二:双指针

vector<int> sortedSquares(vector<int>& nums) {
    int size = nums.size();
    int i = 0;
    int j = size - 1;
    int pos = size - 1;
    vector<int> ans(size,0);
    while(i <= j) {
        if(nums[i] * nums[i] < nums[j] * nums[j]) {
            ans[pos] = nums[j] * nums[j];
            j--;
        } else {
            ans[pos] = nums[i] * nums[i];
            i  ;
        }
        pos--;
    }
    return ans;
}