解法:
堆是完全二叉树 用数组来存储
然后用定义判定
#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;
}