标题链接:

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;
}
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。