腾讯2017暑假笔试题-查找二叉树的根

来源:互联网 发布:生化危机mac版 编辑:程序博客网 时间:2024/06/05 16:30
/*腾讯2017暑假笔试题-查找二叉树的根对于一个高度为k的满排序二叉树,给定k和三个数,找到这三个数的最小根节点*/#include <iostream>#include <vector>#include <algorithm>using namespace std;//v中3个已经排序过的元素int Help(int lo, int hi, vector<int>& 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<int> 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;}
0 0
原创粉丝点击