算法竞赛进阶指南-18.货仓选址
题目链接
Method : 排序
思路很明确的一道题,就是要排序后依次计算a[]首尾的元素之间的距离。
使用i < n/2
就不需要分奇偶讨论了
#include <vector>
#include <iostream>
#include <algorithm>
using namespace std;
typedef long long LL;
int n;
vector<int> a;
int main() {
cin >> n;
a.resize(n);
for (int i = 0; i < n; i ++) {
scanf("%d", &a[i]);
}
sort(a.begin(), a.end());
LL res = 0;
for (int i = 0; i < n / 2; i ++) {
res += (a[n - i - 1] - a[i]);
}
cout << res << endl;
return 0;
}
复杂度分析
时间复杂度, 使用
<algorithm>
中的sort排序和快排的时间复杂度是相同的 。空间复杂度,数组a的长度为n。
本博客所有文章均采用 CC BY-NC-SA 4.0 协议 ,禁止商用,转载请注明出处!