首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
LEarBB
中国科学院大学
2017届
C++工程师
成为一个优秀的人
关注
私信
加入黑名单
举报TA
首页
刷题
圈子
项目
笔记
基本资料
真题试卷
在线编程
心理测试
回答的问题(61)
最长回文子串
0
最优解法是Manacher算法 O(n)复杂度。 很多牛牛已经给出解法了。 这里给出动态规划的解法 复杂度O(n^2) O(n^2) 递推式为: // dp[i, j] = dp[i + 1, j - 1] when str[i] == str[j] ...
发表于 2016-05-16 11:11:05
串的模式匹配
0
可以调用C++库函数 也可以自己实现。比如KMP。 C++代码: void getNxt(vector<int> &nxt, const string pattern){ int len = pattern.length(); nxt[0]...
发表于 2016-05-03 20:05:42
用递归函数和栈操作逆序栈
17
注意不能使用额外的数据结构! 其实类似深度优先搜索。 C++代码如下: int level = 0; vector<int> reverseStackRecursively(vector<int> stack, int top) { ...
发表于 2016-05-02 21:49:26
构造MaxTree
21
算法的证明左神的书中解释的很详细,大致: 1. 该方法可以生成一棵树 不会是森林(所有元素都不同 向上总会有一个共同的最大值) 2. 该方法,所有元素最多只有两个孩子。(只需证明每个数一侧只会最多有一个孩子) 关于算法的复杂度:时间O(n) 空间O(n) C++代码...
发表于 2016-05-02 16:46:12
相邻最大差值
3
桶排序的思想: 找最大值和最小值。分配(max-min+1)个桶,一定存在空桶。(空桶可能存在多个) 最大差值在空桶附近的两个桶之间。 C++代码如下: if(n <= 0) return 0; int mx = A[0], mn = A[0]; ...
发表于 2016-05-01 14:29:17
链表内指定区间反转
10
大致画个图:分为1-m m-n n+1-end 用指针记录分界结点,逆序后链接即可。【注意判NULL】 ListNode *reverseBetween(ListNode *head, int m, int n) { if(head == NULL || head->...
发表于 2016-04-22 00:34:31
反转数字
0
其实题意很简单,刚开始可能想到这样的代码: int res = 0; while(x) { res = res*10 + x%10; x /= 10; } ...
发表于 2016-04-21 22:57:26
链表排序
2
ListNode* merge(ListNode *h1, ListNode *h2) { if(h1 == NULL) return h2; else if(h2 == NULL) return h1; else { L...
发表于 2016-04-21 00:20:56
求平方根
0
这道题可以有两种解法: 第一种:分治 【注意溢出问题】 int sqrt(int x) { if(x < 0) return-1; int l = 1, r = x / 2+ 1; // 注意右边界要取x/2+1 int mid; ...
发表于 2016-04-20 23:57:29
请找出下面程序中有哪些错误
0
关键是看const修饰的是哪个。 ① const int *p const修饰的是 *p(值) 因此p指向的内容(对象)值是不可变的。 即: *p = anotherVal; 这样的操作是禁止的。 ② int *const p const修饰的是p(指...
发表于 2016-03-25 20:05:22
首页
上一页
1
2
3
4
5
6
7
下一页
末页
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题