首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
课程
专栏·文章
竞赛
搜索
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
在线笔面试、雇主品牌宣传
登录
/
注册
followyourbliss
获赞
0
粉丝
2
关注
17
看过 TA
12
门头沟学院
2025
Java
IP属地:浙江
暂未填写个人简介
私信
关注
拉黑
举报
举报
确定要拉黑followyourbliss吗?
发布(11)
刷题
followyourbliss
2022-06-29 18:08
门头沟学院 计算机类
题解 | #序列化二叉树#
思路 给你一棵树,序列化一棵树 思路: 可以采用层次遍历的方式, 难点可能在于有些空结点会用#,有些则不用需要特别判断一下。 给你字符串,反序列化生成一棵树 思路: 层序遍历建立二叉树,难点在于处理结点的指针关系, 思路一对每个结点找到它的双亲; 思路二对每个结点找到的孩子。这里采用思路一。 注意: 这里代码老师通过不了, 原因在于保存的字符串由于是局部变量,被释放掉了。 我用了类变量,代码过了。 代码 void split(string str, char ch, vector<string> &strs){ int start=0, pos=-...
0
点赞
评论
收藏
转发
followyourbliss
2022-06-29 17:17
已编辑
门头沟学院 计算机类
题解 | #丑数#
思路一 丑数的的性质: 如果一个数是丑数,那么这个数乘2或3或者5,其积仍然是丑数 优先队列 代码1 int GetUglyNumber_Solution(int index) { priority_queue<ll, vector<ll>, greater<ll> > pq; vector<ll> ans; int n=1; ans.push_back(1); while(n!=index){ ll cur = ans[n-1]; ...
0
点赞
评论
收藏
转发
followyourbliss
2022-06-15 21:43
门头沟学院 计算机类
题解 | #滑动窗口的最大值#
思路一 这里采用双指针去定义每个窗口的左右边界。 用一个求最大值函数得到每个窗口的最大值。 代码 class Solution { public: vector<int> maxInWindows(const vector<int>& nums, int size) { // 方法一 只用双指针 int left=0, right=-1; vector<int> ans; for(int i=0;i<nums.size();++i){ ++righ...
0
点赞
评论
收藏
转发
followyourbliss
2022-06-09 00:49
门头沟学院 计算机类
题解 | #正则表达式匹配#
心路历程 首先刚拿到这道题很懵,不知道从哪下手。 只能看题解,之后手动模拟,理解之后手敲。这点很关键。 如果想进一步吃透这道题,建议自己出类似的题。 思考一,假设只有*, 只有., 有*有., 这样自己会做吗? 思考二, 看别人代码, 哪个字符串优先遍历呢?为什么? 思考三,这里有空串这种情况dp用的是字符串长度,而判断字母相等用到数组下标,这里增加了理 解别人代码的难度。要学会互化。 思考三,这里特别情况,如空串,要会特判。因为这里情况较多,所以分类讨论的树比较复杂。 思考四,动态规划类似一个3*3的数独,一步一步推,直到推到想要的结果。 思考五,用递归的思路怎么写? 思路 二维dp. 初...
0
点赞
评论
收藏
转发
followyourbliss
2022-04-17 20:28
门头沟学院 计算机类
题解 | #翻转单词序列#
解法1(使用substr和find来切割字符串) 1,使用substr和find函数切割字符串 2,即便两个单词之间存在多个空格或者分割符,同样也可以处理 3, 举个例子来说如"word###dog", 切割符是'#', 经过第一个循环得到的是["word", "","", "dog"]。 恢复时是两个单词之间加'#', 这样就得到"dog###word"。空串的个数是[分割符个数-1] class Solution { public: string ReverseSentence(string str) { if(str=="") return ""; ...
0
点赞
评论
收藏
转发
followyourbliss
2022-04-15 20:37
门头沟学院 计算机类
题解 | #连续子数组的最大和#
解法1(前缀和) 思路:用空间换时间,定义一个前缀数组,之后用双重循环来求出子数组的最大和。 时间复杂度: O(N^2) 空间复杂度: O(N) class Solution { public: int FindGreatestSumOfSubArray(vector<int> array) { int len=array.size(); if(len==1) return array[0]; vector<int> _sum(len+1); _sum[0]=0; for(int...
0
点赞
评论
收藏
转发
followyourbliss
2022-04-14 16:58
已编辑
门头沟学院 计算机类
题解 | #数组中出现次数超过一半的数字#
解法1(哈希) 可以使用map<int, int>,也可以用int _hash[50010]。 时间复杂度:O(n) 空间复杂度:O(n) int MoreThanHalfNum_Solution(vector<int> numbers) { int len = numbers.size(); int want = (len+1)/2; int _hash[50010]={0}; for(int i=0;i<len;++i){ int cur= numbers[i]...
0
点赞
评论
收藏
转发
followyourbliss
2022-04-13 11:14
门头沟学院 计算机类
题解 | #栈的压入、弹出序列#
解法1(模拟栈的输入输出过程) 结论1:首先要明白如果入栈和出栈序列合法的话,那么总的入栈和出栈序列是唯一的。 结论2:每次POP,只能才能从栈顶弹出。 模拟过程: 定义一个stack, 定义两个指针p1和p2。 首先找到p2指向元素value在pushV中的位置pos, 如果找不到,那么直接返回false。 因为要pop(value)要么现在不在栈顶;要么暂时不在栈顶,在pushV序列中; 要么不在pushV序列中,即非法的。找不到即符合第三种情况。 如果找到的话,将[p1,pos]内的元素压入栈中,移动p1。 之后出栈操作,移动p2。 当然最核心的还是何时push,何时pop? 思考:...
0
点赞
评论
收藏
转发
followyourbliss
2022-04-11 21:04
门头沟学院 计算机类
题解 | #包含min函数的栈#
解法1(数组模拟栈,遍历栈得到最小值) class Solution { public: void push(int value) { _stack[++ptr]=value; return; } void pop() { // if(ptr==-1) return; --ptr; } int top() { // 因为栈中始终有元素,所以不需要特判 return _stack[ptr]; } int min() { int _m...
0
点赞
评论
收藏
转发
followyourbliss
2022-04-05 22:23
已编辑
门头沟学院 计算机类
题解 | #剪绳子#
解法一 使用DFS暴力搜索(部分超时) class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param n int整型 * @return int整型 */ int cutRope(int n) { // write code here dfs(0,1,n); return _max; } void dfs(int cur_sum, int cur_pro...
0
点赞
评论
收藏
转发
followyourbliss
2019-11-21 23:14
门头沟学院 计算机类
2019-11-21
在牛客打卡1天,今天也很努力鸭!
0
点赞
评论
收藏
转发
1
工具箱
TA的圈子
暂未加入圈子
TA的圈子
TA的笔记
暂无笔记
TA的笔记
登录
0
天
已登录
0
天
连续登录
0
人
今日访客
牛客网
牛客企业服务