1. 程式人生 > 實用技巧 >PTA 乙級 1060 愛丁頓數 (25分) C++

PTA 乙級 1060 愛丁頓數 (25分) C++

思路:先降序排序,下標代表達標天數,當元素值小於下標時,意味著愛定頓數出現了.

為了節省程式碼量,我直接利用升序排序,大同小異

 1 #include<iostream>
 2 #include<vector>
 3 #include<algorithm>
 4 
 5 using namespace std;
 6 
 7 int main() {
 8     int n = 0;
 9     cin >> n;
10     vector<int> amile(n);
11     for (int i = 0; i < n; ++i) cin >> amile[i];
12 sort(amile.begin(), amile.end()); //升序排序 13 if (amile[0] > n) cout << n; //如果最小的英里數比n都大,必然有n天大於n英里 14 else { 15 for (int i = n - 1; i >= 0; --i) { 16 if (amile[i] <= n - i) { //n-i表示天數 17 cout << n - i - 1
; //如果第n-i天不滿足車距>天數,那麼輸出上一個滿足的數 18 break; 19 } 20 } 21 } 22 return 0; 23 }