本文共 597 字,大约阅读时间需要 1 分钟。
/*腾讯2017暑假笔试题-查找二叉树的根对于一个高度为k的满排序二叉树,给定k和三个数,找到这三个数的最小根节点*/#include#include #include using namespace std;//v中3个已经排序过的元素int Help(int lo, int hi, vector & v){ int mid = (hi + lo) / 2; if (mid == v[1] || (v[0] < mid && v[2] > mid)) return mid; else if (v[0] >= mid) { return Help(mid+1, hi, v); } else return Help(lo, mid-1, v);}int main(){ int k; vector v(3, 0); cin >> k >> v[0] >> v[1] >> v[2]; sort(v.begin(), v.end()); int count = pow(2, k) - 1; cout << Help(1, count, v) << endl;}
转载地址:http://gmmxb.baihongyu.com/