2 条题解
-
0
快速排序方法:
#include <bits/stdc++.h> using namespace std; // 快速排序的递归实现 void quickSort(vector<int>& arr, int low, int high) { if (low < high) { // 选择一个基准元素并对其进行分区 int pivot = arr[high]; // 选择数组的最后一个元素作为基准 int i = low - 1; // i指向小于基准的部分的最后一个元素 for (int j = low; j < high; j++) { if (arr[j] < pivot) { i++; swap(arr[i], arr[j]); // 将小于基准的元素交换到前面 } } swap(arr[i + 1], arr[high]); // 将基准元素放到正确的位置 int pi = i + 1; // 对基准元素左侧和右侧的部分递归进行快速排序 quickSort(arr, low, pi - 1); quickSort(arr, pi + 1, high); } } int main() { int n; cin >> n; // 输入随机数的个数 vector<int> numbers(n); for (int i = 0; i < n; i++) { cin >> numbers[i]; // 输入随机数 } // 使用 set 去重 set<int> uniqueNumbers(numbers.begin(), numbers.end()); // 将去重后的元素放入一个新的vector vector<int> sortedNumbers(uniqueNumbers.begin(), uniqueNumbers.end()); // 使用快速排序对去重后的数列进行排序 quickSort(sortedNumbers, 0, sortedNumbers.size() - 1); // 输出不相同的随机数个数 cout << sortedNumbers.size() << endl; // 输出排序后的数列 for (int i = 0; i < sortedNumbers.size(); i++) { if (i != 0) cout << " "; // 输出时数字间空格分隔 cout << sortedNumbers[i]; } cout << endl; return 0; } -
0
set结构:
#include <bits/stdc++.h> using namespace std; set<int> st; int main() { int n; cin >> n; while (n--) { int t; cin >> t; st.insert(t); } cout << st.size() << endl; for (auto it = st.begin(); it != st.end(); it++) { if (it != st.begin()) cout << " "; cout << *it; } return 0; }
- 1
信息
- ID
- 664
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 10
- 标签
- 递交数
- 5
- 已通过
- 4
- 上传者