差了五分钟写出来的,不知道思路对不对,不用建树,把数组导入队列,比头节点小的导入左队列,大的放入右队列,对两个队列递归求出深度,判断是否满足a-balance,不知道这么考虑是否有问题。int judge(queue<int>& q,int n) { if (q.size() == 0) return 0; int temp = q.front(); q.pop(); queue<int> left; queue<int> right; while (!q.empty()) { int t = q.front(); if (t > temp) { right.push(t); q.pop(); } else { left.push(t); q.pop(); } } int l = judge(left, n); int r = judge(right, n); if (l == -1 || r == -1) return -1; if (abs(r - l) > min(11, n)) return -1; else return max(l, r) + 1; } int main() { int group; cin >> group; while (group--) { int n; cin >> n; vector<int> array(n); queue<int> q; for (int i = 0; i < n; i++) { cin >> array[i]; q.push(array[i]); } if(judge(q, n)!=-1) cout<<"yes"<<endl; }
点赞 评论

相关推荐

03-29 17:05
门头沟学院 Java
asdasdasda...:我前段时间找工作焦虑,有几天连续熬夜熬穿了,然后心脏突然不舒服,立马躺床上睡觉了,然后第二天还是不舒服,去看医生说是心率不齐,吓得我后面天天早早睡觉,调养身体,过了好几天才好过来。所以真的,工作这些东西哪有那么重要,最多钱多一点钱少一点,降低物欲。活着才是最重要的,现在想想真的后怕
如何排解工作中的焦虑
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务