度度熊想去商场买一顶帽子,商场里有N顶帽子,有些帽子的价格可能相同。度度熊想买一顶价格第三便宜的帽子,问第三便宜的帽子价格是多少?
#include <iostream> #include <set> #include <vector> using namespace std; void swap01(vector<int> &array, int i, int j) { int temp = array[i]; array[i] = array[j]; array[j] = temp; } void SelectionSort(vector<int> &array, int len) // O(n*n) { int i = 0; int j = 0; int k = -1; for (i = 0; i < len; i++) { k = i; //寻找最小元素的下标 for (j = i + 1; j < len; j++) { if (array[j] < array[k]) //开始寻找最小元素的下标 { k = j; } } swap01(array, i, k); } } int main() { int n; cin >> n; vector<int> array; array.clear(); for (int i = 0; i < n; i++) { int tmp; cin >> tmp; array.push_back(tmp); } SelectionSort(array, n); int count = 0; int third = 0; for (int i = 0; i < n - 1; i++) { if (array[i] < array[i + 1]) count++; third = count == 2 ? i + 1 : third; } if (count >= 2) cout << array[third] << endl; else cout << -1 << endl; return 0; }