解法:
堆是完全二叉树 用数组来存储
然后用定义判定
#include<iostream>
#include<vector>
using namespace std;
int main() {
int n;
cin >> n;
vector<int> vec(n);
for (int i = 0; i < n; i++) cin >> vec[i];
for (int i = 0; i < n / 2 - 1; i++) {
if (vec[i] >= vec[2 * i + 1] || vec[i] >= vec[2 * i + 2]) {
cout << "No";
return 0;
}
}
cout << "Yes";
return 0;
}