【每日一题-10】求第K层节点与求数组中出现一半的数

来源:互联网 发布:session php注册示例 编辑:程序博客网 时间:2024/06/05 21:09
求二叉树第k层的节点个数
typedef struct Node{int val;struct Node* _left;struct Node* _right;Node(const int& data):val(data), _left(NULL), _right(NULL){}}Node;void _GetKLevelSize(Node* root, const size_t k,size_t level, size_t& count){if (root == NULL){return;}if (level == k){count++;return;}_GetKLevelSize(root->_left, k, level + 1, count);_GetKLevelSize(root->_right, k, level + 1, count);}size_t GetKLevelSize(size_t k){assert(k > 0);size_t count = 0;size_t level = 1;_GetKLevelSize(_root, k, level, count);return count;}

一个数组中有一个数字的次数超过了数组的一半,求出这个字符。

int OverHalfNum(int* array, size_t n){assert(array);int count = 0;int num = array[0];for (size_t i = 1; i < n; ++i){if (array[i] == array[i - 1]){count++;}else{if (count != 0){count--;}num = array[i];}}return num;}int main(){int array[] = { 2, 3, 4, 5, 6, 2, 2, 2, 2, 2, 1, 5, 2, 2 };cout << OverHalfNum(array, sizeof(array) / sizeof(array[0]));system("pause");return 0;}

阅读全文
0 0
原创粉丝点击