給定乙個按非遞減順序排序的整數陣列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
a
已按非遞減順序排序。
解析:題意比較簡單,最直觀的做法就是把陣列中每個元素都平方,然後將結果排序。但是這種時間複雜度取決於排序演算法的時間複雜度,最小也是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 判斷陣列中是否含有負數。若沒有負數,直接將每個元素平方之後賦值,返回...