LeetCode977 有序陣列的平方

2021-09-23 20:27:26 字數 890 閱讀 9055

給定乙個按非遞減順序排序的整數陣列a,返回每個數字的平方組成的新陣列,要求也按非遞減順序排序。

示例 1:

輸入:[-4,-1,0,3,10]輸出:[0,1,9,16,100]
示例 2:

輸入:[-7,-3,2,3,11]輸出:[4,9,9,49,121]

1 <= a.length <= 10000-10000 <= a[i] <= 10000a已按非遞減順序排序。

解析:題意比較簡單,最直觀的做法就是把陣列中每個元素都平方,然後將結果排序。但是這種時間複雜度取決於排序演算法的時間複雜度,最小也是o(nlogn)。所以就有另一種方法,先將陣列中正值和負值分開,然後按照正值從小往大,負值從大向小的順序依次比較平方後資料的大小,並把較小的加入到結果陣列中。最後,將剩餘的正值或負值中元素的平方依次加入到結果陣列中。

**:

//先平方,後排序

vectorsortedsquares(vector& a)

sort(res.begin(), res.end());

return res;

}

他山之石:

vectorsortedsquares(vector& a) 

else

}for (; j= 0; --k)

r.push_back(a[k] * a[k]);

return r;

}

leetcode 977 有序陣列的平方

給定乙個按非遞減順序排序的整數陣列a,返回每個數字的平方組成的新陣列,要求也按非遞減順序排序。示例 1 輸入 4,1,0,3,10 輸出 0,1,9,16,100 示例 2 輸入 7,3,2,3,11 輸出 4,9,9,49,121 1 a.length 10000 10000 a i 10000a...

leetcode 977 有序陣列的平方

給定乙個按非遞減順序排序的整數陣列 a,返回每個數字的平方組成的新陣列,要求也按非遞減順序排序。示例 1 輸入 4,1,0,3,10 輸出 0,1,9,16,100 示例 2 輸入 7,3,2,3,11 輸出 4,9,9,49,121 1 a.length 10000 10000 a i 10000...

LeetCode 977 有序陣列的平方

給定乙個按非遞減順序排序的整數陣列 a,返回每個數字的平方組成的新陣列,要求也按非遞減順序排序。示例1 輸入 4,1,0,3,10 輸出 0,1,9,16,100 示例2 輸入 7,3,2,3,11 輸出 4,9,9,49,121 判斷陣列中是否含有負數。若沒有負數,直接將每個元素平方之後賦值,返回...