首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
datong
华南理工大学
未填写毕业时间
算法工程师
关注
私信
加入黑名单
举报TA
首页
刷题
圈子
项目
笔记
基本资料
真题试卷
在线编程
心理测试
回答的问题(40)
数组中只出现一次的数字
53
思路就是使用异或,但是与在成对出现的数字中查找一个单独的数字不同的是需要利用异或结果的最低位为1的flag将数组中的数字分为两类,一类是与flag按位与为0,另一类为不为0,这样再分别异或一次就能够找出这两个数。很是巧妙。其中有一个语法上容易忽略的坑:==的优先级比&高,所以&时需要...
发表于 2015-09-06 22:15:34
判断是不是平衡二叉树
1
判断是否为avl树关键在于懂得求树的深度 class Solution { private: int height(TreeNode* pRoot){ if(pRoot == NULL) return 0; int leftHeight = 0,r...
发表于 2015-09-06 21:47:43
第一个只出现一次的字符
1
难道就我搞懂了题目的意思嘛。。。。 这应该是最优的代码了吧。。。 利用了类似bitmap的思想,使用str中每个字符减去65的数值作为tab数组的下标,这个下标存储的数值为字符在str中第一次出现的位置,如果第二次(及以上)出现则置为-2,而tab初始化为-1,最后对比一次arr中存储...
发表于 2015-09-06 21:21:26
丑数
3
class Solution { public: int GetUglyNumber_Solution(int index) { if(index <= 0) return 0; int* arr = new int[index]; arr[0] = 1...
发表于 2015-09-06 20:39:20
数字在升序数组中出现的次数
8
class Solution { private: int binaryFind(vector<int> &data, int begin, int end ,int k){ int ind = -1; if(begin >= end) return -1;...
发表于 2015-09-06 11:58:31
二叉树的深度
0
class Solution { public: int TreeDepth(TreeNode* pRoot) { if(pRoot == NULL) return 0; int left = TreeDepth(pRoot->left); ...
发表于 2015-09-06 10:18:33
数组中出现次数超过一半的数字
1
class Solution { public: int MoreThanHalfNum_Solution(vector<int> numbers) { map<int,int> hmap; int nsize = numbers.size(...
发表于 2015-09-05 11:53:25
最小的K个数
40
使用简单粗暴的全部排序的方法并不能取得很好的性能,因为只要求k个数,所以使用最小堆就可以了。 (如果是要取最大值就是用最大堆) class Solution { private: void heapSort(vector<int> &input, int ro...
发表于 2015-09-04 20:31:20
从上往下打印二叉树
0
class Solution { public: vector<int> PrintFromTopToBottom(TreeNode *root) { vector<int> v ; queue<TreeNode *> q; q.p...
发表于 2015-09-04 19:31:31
栈的压入、弹出序列
1
class Solution { public: bool IsPopOrder(vector<int> pushV,vector<int> popV) { stack<int> t ; int j = 0; ...
发表于 2015-09-04 19:12:51
首页
上一页
1
2
3
4
下一页
末页
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题