C++
文章平均质量分 58
qq1282867270
这个作者很懒,什么都没留下…
展开
-
通过pid查看它载入dll,通过dll查询那些pid载入它
遇到某个文件无法删除,除了前一篇“打开”的占用之外,还有就是作为一个模块被占用。ring3下的碎甲功能除了关闭打开的文件句柄之外,就是FreeLibrary作为模块打开的句柄。GetProcModule.h#ifndef GETPROCMODULE_H__#define GETPROCMODULE_H__void GetModuleByPid(DWORD dw原创 2015-02-10 13:51:39 · 734 阅读 · 0 评论 -
【LeetCode】遇到一个很有趣的问题:Climbing Stairs
这个问题简单说来是这样的:你上楼梯可以选择一次迈一个台阶,或者一次迈两个台阶,问上N级台阶,一共有几种方法。恍惚之间让我想到我万恶的中学数学,这似乎是排列组合问题,于是我又重温了一遍组合公式。世界上一切知识都是用进废退的,哪怕我微积分学的再好,2年不用也是从头学起。幸好排列组合公式很简单,我又推导了一遍。这问题可以这样看:通过确定迈2级台阶的数量,再排列组合他们的位置。以7原创 2015-03-11 11:06:26 · 580 阅读 · 0 评论 -
【LeetCode】原来递归真的很屌,尾递归真的很快
俗话说“熟能生巧”,前几个题目做的很苦B,就是遍历树的时候不用递归,结果写起来超级复杂,并且还性能不好。这下学乖了,一开始就用递归思维来做,简单而快捷。这次题目是“找到二叉树的最大/最小路径的值”,就是从树根到树叶路径最大值,或者最小值。在这里:https://leetcode.com/problems/maximum-depth-of-binary-tree/写的时候没考原创 2015-03-10 13:48:59 · 1531 阅读 · 0 评论 -
【LeetCode】递归和非递归的区别
都说递归比非递归快,但是总没有直观印象,碰巧遇到一个问题,在这里:https://leetcode.com/problems/path-sum/,大体上说,就是遍历二叉树,看树根到树叶累加值是否等于某个值,思路很简单,后序遍历,每次树叶都出现在栈顶,此时计算累加值,出栈就减去当前值,直到栈空。需要注意的地方,就是左子树和右子树访问之后要设定标记。代码:bool hasPathSum原创 2015-03-09 12:50:27 · 2231 阅读 · 0 评论 -
【LeetCode】测试用例的覆盖
遇到一个简单问题:两个二叉树,如何比较完全相等。在这里:https://leetcode.com/problems/same-tree/。因为之前做了很多题目,有很多“半成品”,比如:前序遍历,中序遍历……于是想到这样的方法,把这两个树分别生成前序和中序,比较看是否相等。记得似乎不存在两个不一样的树,生成的前序和中序遍历都相等的,或者存在,但是我没发现。代码是这样:void Tra原创 2015-03-10 15:26:13 · 2024 阅读 · 0 评论 -
【leetcode】关于代码的优化
先看一下别人的博客:http://blog.csdn.net/booirror/article/details/43950477这个问题在:https://oj.leetcode.com/problems/rotate-array/,属于比较简单那种上面作者的思路跟我一样,正常人思维就应该这样,不过我提交之后,系统提示:time limit extended。尼玛居然告诉我原创 2015-03-06 11:26:58 · 541 阅读 · 0 评论 -
发现一个好网站leetcode.com
昨天在酷壳逛逛,看到版主推荐一个网站,在线做一些算法题目,于是出于好奇就去看看,一下子就被吸引了。从上往下看,题目是检测配对的括号,这个页面是提交方案成功之后给出的统计表。我之前一直很好奇一个问题:你是怎么知道我写的程序对不对,好不好?看图最上的方框没有,那个就可以解释了。一共65个测试用例,几乎覆盖了所有的情况,一旦满足测试用例就是正确的算法,把主观评价变成了客观的评原创 2015-03-04 10:40:06 · 672 阅读 · 0 评论 -
打扑克和插入排序
我们在打扑克的时候有两种策略,一种是一边抓牌一边排序,比如:抓到2,再抓到5就排在2的左边,又转到3就放到中间,如此递归,牌抓好了也排序好了,“似乎”很快。原因就是,在其他小伙伴抓牌的时候,你在排序,属于并行计算,可不是你的排序算法比较优秀,不过这种排序也是O(n)的时间复杂度,效率还是很高的。而另一种策略就是大家先不排序,几个小伙伴拼命抓牌,每个人都抓好牌之后,大家集中“摆牌”,其实原创 2015-03-03 10:58:33 · 11028 阅读 · 0 评论 -
世界杯和二叉堆
先看一张图:经常看体育比赛的都知道这种淘汰赛的图示,比如:足球,篮球,网球……,但是这个图不是来自体育栏目,而是来自计算机的“二叉堆”。他们的基本思想差不多,从下向上的比较大小,大的就上升一格就像“小组出线”,或者“晋级8强”,然后上一轮胜利者再次比较,直到剩下最后一个,那么这个就是最大,或者最小的,也就是“冠军”了。但是这种比较肯定是不公平的,上图为例:你能保证2原创 2015-03-02 15:05:54 · 465 阅读 · 0 评论 -
汇总一些困扰了很久的问题
1.消除递归导致堆栈溢出其实这个问题本来无法避免,因为你模拟调用过程,自己利用私有堆栈,也可硬转成非递归,但是大数据下肯定私有堆栈也会溢出。不过现在有了编译器优化就可以把“尾递归”转化成循环,那么……既然能直接转化成循环,你干嘛还要写成递归,直接写循环多好!编译器也只不过是把入参重新赋值,再goto到开头执行一遍,那么我们自己也可以啊。关键在于把普通递归转化成尾递归,一句话:增加参数,把本次递原创 2015-03-01 14:39:43 · 413 阅读 · 0 评论 -
尝试一下桶排序
之前听说过非比较排序,没想到这种“用空间换时间”的操作能这么快。实例如下:int ChooseMax(int* p,int n){ int ret=0; for (int i=0;i<n;i++) { if (p[i]>ret) { ret=p[i]; } } return ret;}int GetPowCount(in...原创 2019-03-12 18:08:54 · 110 阅读 · 0 评论