平均值的种类等价于两数之和的种类,用set来保存当前最小的数字与最大的数字之和模拟即可。set大小即为答案。
- class Solution {
- public:
- int distinctAverages(vector<int>& a) {
- set<int> st;
- sort(a.begin(),a.end());
- for(int i=0,j=a.size()-1;i<=j-1;i++,j--){
- st.insert(a[i]+a[j]);
- }
- return st.size();
- }
- };
时间复杂度:O(nlogn)
空间复杂度:O(n)