自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 资源 (2)
  • 收藏
  • 关注

原创 尝试一下桶排序

之前听说过非比较排序,没想到这种“用空间换时间”的操作能这么快。实例如下: 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 36

原创 命令行编译JNI

vs2015 ctp里面已经支持了移动平台开发,利用C++开发APK,或者win10平台的通用app都行。但是里面配置的环境还是很坑爹的,里面的hello word都编译错误。因为产品还没上市“外国专家”,还没当小白鼠,给出解决方案。所以,我们只能手工解决。 可以看到vs2015环境也是利用开源工程,不过里面llvm的编译器老是报错,太烦了,去尼玛的IDE,反正VS也是利用这个S

2015-04-01 15:07:25 1006

原创 【LeetCode】遇到一个很有趣的问题:Climbing Stairs

这个问题简单说来是这样的:你上楼梯可以选择一次迈一个台阶,或者一次迈两个台阶,问上N级台阶,一共有几种方法。 恍惚之间让我想到我万恶的中学数学,这似乎是排列组合问题,于是我又重温了一遍组合公式。世界上一切知识都是用进废退的,哪怕我微积分学的再好,2年不用也是从头学起。幸好排列组合公式很简单,我又推导了一遍。 这问题可以这样看:通过确定迈2级台阶的数量,再排列组合他们的位置。以7

2015-03-11 11:06:26 507

原创 【LeetCode】测试用例的覆盖

遇到一个简单问题:两个二叉树,如何比较完全相等。在这里:https://leetcode.com/problems/same-tree/。因为之前做了很多题目,有很多“半成品”,比如:前序遍历,中序遍历……于是想到这样的方法,把这两个树分别生成前序和中序,比较看是否相等。记得似乎不存在两个不一样的树,生成的前序和中序遍历都相等的,或者存在,但是我没发现。 代码是这样: void Tra

2015-03-10 15:26:13 1781

原创 【LeetCode】原来递归真的很屌,尾递归真的很快

俗话说“熟能生巧”,前几个题目做的很苦B,就是遍历树的时候不用递归,结果写起来超级复杂,并且还性能不好。这下学乖了,一开始就用递归思维来做,简单而快捷。 这次题目是“找到二叉树的最大/最小路径的值”,就是从树根到树叶路径最大值,或者最小值。在这里:https://leetcode.com/problems/maximum-depth-of-binary-tree/ 写的时候没考

2015-03-10 13:48:59 1352

原创 【LeetCode】递归和非递归的区别

都说递归比非递归快,但是总没有直观印象,碰巧遇到一个问题,在这里:https://leetcode.com/problems/path-sum/,大体上说,就是遍历二叉树,看树根到树叶累加值是否等于某个值,思路很简单,后序遍历,每次树叶都出现在栈顶,此时计算累加值,出栈就减去当前值,直到栈空。需要注意的地方,就是左子树和右子树访问之后要设定标记。 代码: bool hasPathSum

2015-03-09 12:50:27 1938

原创 【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 443

原创 发现一个好网站leetcode.com

昨天在酷壳逛逛,看到版主推荐一个网站,在线做一些算法题目,于是出于好奇就去看看,一下子就被吸引了。 从上往下看,题目是检测配对的括号,这个页面是提交方案成功之后给出的统计表。我之前一直很好奇一个问题:你是怎么知道我写的程序对不对,好不好?看图最上的方框没有,那个就可以解释了。一共65个测试用例,几乎覆盖了所有的情况,一旦满足测试用例就是正确的算法,把主观评价变成了客观的评

2015-03-04 10:40:06 535

原创 打扑克和插入排序

我们在打扑克的时候有两种策略,一种是一边抓牌一边排序,比如:抓到2,再抓到5就排在2的左边,又转到3就放到中间,如此递归,牌抓好了也排序好了,“似乎”很快。原因就是,在其他小伙伴抓牌的时候,你在排序,属于并行计算,可不是你的排序算法比较优秀,不过这种排序也是O(n)的时间复杂度,效率还是很高的。 而另一种策略就是大家先不排序,几个小伙伴拼命抓牌,每个人都抓好牌之后,大家集中“摆牌”,其实

2015-03-03 10:58:33 279

原创 世界杯和二叉堆

先看一张图: 经常看体育比赛的都知道这种淘汰赛的图示,比如:足球,篮球,网球……,但是这个图不是来自体育栏目,而是来自计算机的“二叉堆”。他们的基本思想差不多,从下向上的比较大小,大的就上升一格就像“小组出线”,或者“晋级8强”,然后上一轮胜利者再次比较,直到剩下最后一个,那么这个就是最大,或者最小的,也就是“冠军”了。 但是这种比较肯定是不公平的,上图为例:你能保证2

2015-03-02 15:05:54 400

原创 汇总一些困扰了很久的问题

1.消除递归导致堆栈溢出 其实这个问题本来无法避免,因为你模拟调用过程,自己利用私有堆栈,也可硬转成非递归,但是大数据下肯定私有堆栈也会溢出。不过现在有了编译器优化就可以把“尾递归”转化成循环,那么……既然能直接转化成循环,你干嘛还要写成递归,直接写循环多好!编译器也只不过是把入参重新赋值,再goto到开头执行一遍,那么我们自己也可以啊。关键在于把普通递归转化成尾递归,一句话:增加参数,把本次递

2015-03-01 14:39:43 346

原创 通过pid查看它载入dll,通过dll查询那些pid载入它

遇到某个文件无法删除,除了前一篇“打开”的占用之外,还有就是作为一个模块被占用。 ring3下的碎甲功能除了关闭打开的文件句柄之外,就是FreeLibrary作为模块打开的句柄。 GetProcModule.h #ifndef GETPROCMODULE_H__ #define GETPROCMODULE_H__ void GetModuleByPid(DWORD dw

2015-02-10 13:51:39 547

原创 通过进程查询它打开的文件,通过文件查询打开它的进程

标题很二,不过应该程序员会明白,这个就是我需要的,就够了。 经常遇到一些问题,比如:通过进程ID确定进程名,通过进程名确定进程ID。windows通常只提供一种查询,然后全部枚举一遍,自己建立反向查询映射关系。 为了给后来人提供参考,也为了自己不用再次发明轮子,或者找不到轮子的时候,在这里做备忘录。代码是整理别人的,API是微软发明的,就像小麦是农民种的,面粉是工厂磨的,但是有人蒸出来

2015-01-26 16:55:51 545

原创 四则运算的C++实现

一个很基本的问题,总是在重复发明轮子,为了不总讨论这种月经问题,今天彻底终结这个问题吧。 大体分两步:去掉括号,并转化为后缀队列,然后计算这个队列 BaseCalc.h: #pragma once enum CalcType { CalcType_None, CalcType_Number, CalcType_Operator_Plus, CalcType_Operat

2015-01-16 17:09:25 455

Mnesia 用户手册中文版 pdf

Mnesia 用户手册中文版 pdf,把市面上的doc转成pdf,并添加重要章节的书签,细节并不完美,请见谅。

2013-03-18

openssl 1.0.1k 移植到vc2013

目前资源都是vc6.0和古老的openssl代码,我整理一个最新版,希望对后来人有帮助。

2015-01-13

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除