- 博客(229)
- 资源 (3)
- 收藏
- 关注
原创 不使用sizeof,确定机器int大小
#includeint main(){ int i; unsigned int x = (unsigned int)~0; for (i = 1; x >>= 8; i++); printf("%d\n", i); }方法2:#includeint main(){ int a = 0; printf("%d",(char *)(&a + 1) - (char *)(&
2016-01-16 09:00:33
2418
原创 Matlab plotyy画双纵坐标
figure(4)axis off;[AX,H1,H2] = plotyy(raw_time, raw_var, raw_time, abs(error));set(AX(1),'Ylim',[0,60],'FontName','Helvetica','FontSize',16);set(AX(1),'YTick',[0:10:60]);HH1=get(AX(1),'Ylabel');
2013-04-11 22:31:33
4724
原创 还是关于pdflatex生成的文件复制粘贴出现乱码问题
高手在人间——一直没有解决这个问题,使用pdflatex命令生成的pdf文档,在复制粘贴过程中,出现乱码问题,后来找到这个网页:http://hi.baidu.com/pcghost/item/be93c48f134f535b840fab96通过添加这个宏包:\usepackage{ccmap}顺利解决问题,现在生成的pdf文档,完全可以复制粘贴出来,不会出现乱码了
2013-03-10 15:47:33
7718
5
原创 LaTex编译时出现的PNG图片转换成EPS格式
最近撰写毕业论文时,使用的Latex写作,其中遇到一个问题,由于很多普片存在,很多PNG图片只能用pdflatex进行编译,但是编译后的中文复制出来后都是乱码,非常麻烦,于是采用latex编译,但是默认图片必须是eps或者pdf,网上找到解决方案,快速将png图片转换为eps格式。具体解决办法见链接:http://cherishlc.iteye.com/blog/1727490写Lat
2013-03-10 15:15:47
8593
原创 Operation not permitted on IsolatedStorageFileStream error
最近在Windows Phone上开发Demo程序,遇到一个棘手问题,采集好的数据,保存到文件后,replay程序打开文件时提示“Operation not permitted on IsolatedStorageFileStream error”,后来找到,需要将以前打开的FileStream Dispose掉就行,然后再打开新的FileStream进行读文件操作。Holy Shit!
2013-01-11 11:06:37
2973
2
原创 Windows Phone中Json Serialization遇到security exception
还是项目问题,在程序中需要对数据进行serialization,选用了json格式,在windows 8上使用wpf没有任何问题,但是移到手机上遇到问题,网上找了很久,原来是class声明必须为public,默认class的级别为private,把所有需要serialization的类声明为public即可
2012-11-15 16:59:47
2347
原创 C# NormalDistribution发生器
最近项目需要将matlab代码移到手机上去,matlab代码非常简单的函数,在C#中没有对应的函数,比如正态发生器,上网找了很多,最后发现一种方法不错,而且挺高效,代码如下: class NormalDistribution { public double Mu { get; set; } public double Sigma { get; se
2012-11-15 13:57:52
2996
转载 12306网站设计
一位网友写的:http://www.360doc.com/content/12/0116/12/8674_179689611.shtml感觉写的不错,很全面。
2012-11-04 23:23:13
2753
原创 石子合并问题
i问题:经典的石子合并问题,不过现在简化为线性问题,而不是环形问题。放着n堆石子(n比如3 4 6 5 4 2最后得到的结果为:61分析:经典的DP算法,代码如下:其中通项式为:a[i][j] = min{k | a[i][k] + a[k+1][j] + sum[i...j], k = i...j-1}其中a[i][j]表示从第i堆到第j堆合并能够
2012-11-04 22:50:57
4712
转载 主定理
当遇到形如T(n) = aT(n/b) + f(n)的递归表达式的时候,如果要用渐进符号表示T(n),每次都花时间来画递归树(Recursion Tree)显然不够经济。 在这个问题上,主定理给了我们一个捷径: 算法递推关系式运算时间备注折半搜索情形二(k = 0)
2012-11-04 10:17:57
2563
原创 求解两个有序数组的中位数
问题:给定两个有序数组a,b,长度都为n,求解两个有序数组中第K大的数。分析:对于所有的这种问题,我们首先想到缩减问题的规模,但是缩减后,求解对象依旧不变,保持一致性,我们首先找到彼此的中位数,判断中位数之间的大小,设a的中位数为x,b的中位数为y,如果x+y>k,那么所有b中的y和大于y的数都大于k,删除不影响问题规模;如果x+y代码如下:/* * findMedian.c
2012-10-28 23:23:21
2786
转载 协同过滤概述
还没看完博客,但是感觉非常不错,果断转载地址了:http://www.vanjor.org/blog/2011/05/rs-collaborative-filtering/协同过滤
2012-10-26 22:49:55
2469
原创 C#如何发布符合 .NET Framework 准则的事件
最近项目需要,需要用到.NET框架,C#,以前没有接触过,勉强学学,感觉还行,学习起来不是很难。最近学校“事件”,其中经典的就是pub-sub模型,在.NET中,有一种方法叫做委托,关键字delegate,这种方式有点类似于接口,但是比借口更加灵活,因为delegate支持广播效果,重载了很多操作父,比如+=,+,-=等,操作起来非常方便。在pub中,声明一个delegate handle
2012-10-23 13:38:11
2790
原创 求正整数n所有可能的和式的组合
题目:给定一个数字n,求解出所有和为n的整数组合,要求组合按照递增方式展示,而且唯一。分析:最初看到这个题,没有什么特别好的思路,后来看了下别人的帖子,其实问题也没那么难,采用递归的方式进行求解,比如我们需要计算和为4的所有组合,我们首先将小于等于4的所有数字列出来1,2,3,4首先选取第一个数字,我们选取1,这时候,余下的和为(4-1),我们继续从1,2,3,4中选择,如此递
2012-10-19 15:12:11
6525
原创 环形打印矩阵
问题:环形打印矩阵,比如:1 2 3 412 13 14 511 16 15 610 9 8 7从外到内循环打印。分析:问题可以分解为4个问题,首先矩形向右走,到头后,再向下走,再向左走,最后向上走,如此循环,关键在于判断边界条件。代码:#include #define MAX 20int n,square[MAX][MAX]
2012-10-18 23:21:22
5056
原创 关于两个鸡蛋判断楼层问题
问题:经典的问题,给你两个鸡蛋,从100层楼上往下扔,从某个楼层开始,鸡蛋开始碎,请问最少扔多少次可以判断出楼层。分析:问题是经典的面试题,100层数据应该是14次,今天群里面同学给了一个解析解,(n+1)*n / 2这个通项解,直观上理解就是每次扔鸡蛋的楼层减1,第一次站在14楼扔,如果不碎,另一个鸡蛋从1楼开始往上走;如果14楼没碎,我们从(14+13)楼往下扔,如果没有碎,我们从
2012-10-18 19:42:02
5328
原创 跳表分析以及实现
题目:实现链表的快速插入、查询、删除等操作分析:我们知道,如果只是通过简单的单链表,我们对单链表的插入、删除、查询操作都是O(n)的,这里需要用到一种特殊的数据结构——跳表,能够实现高速插入、删除、查找,平均时间复杂度能够达到O(logn)(具体分析,有很多人写了专门的文章,由于跳表是基于概率的,所以时间复杂度不好分析)。跳表的核心思想,比如查找,让查找尽可能的快,所以我们第一次尝
2012-10-15 11:08:29
6340
原创 八皇后问题-递归和迭代两种解法
问题:经典的八皇后问题分析:递归解法直观易懂,但是迭代法需要想点思路代码如下:/* * eightQueen.cpp * * Created on: 2012-10-14 * Author: happier */#include using namespace std;#define N 8int sum = 0;int *x = new i
2012-10-14 14:24:33
7507
原创 递归转换成非递归思路
问题:非常经典的问题,将一个二叉树遍历,前序,中序,后序遍历由递归转换成非递归。分析:递归转换成非递归,一般解法是自己使用栈去模拟递归过程,首先我们来看下后序遍历递归解法:void postOrderTraverse(pNode root){if(root == NULL)return ;postOrderTraverse(p->left);postOrderT
2012-10-14 12:54:03
7255
原创 KMP算法
题目:经典的KMP算法分析:和KMP算法对应的是BF算法,其中BF算法时间复杂度,最坏情况下可以达到O(n*m),而KMP算法的时间复杂度是O(n + m),所以,KMP算法效率高很多。但是KMP算法不太好理解,其中牵涉到next数组,目标就是让模式串尽可能的往右滑动,减少比较次数,比如a b a b c-1 0 0 1 2比如我们比较ababc时,如果c
2012-10-09 11:11:52
6233
2
原创 大数相乘
题目:大数据相乘,会出现溢出的那种分析:这种题目,现在网上有很多类似的题目,比如大数相乘,相加等,方法还是相似的,采用字符串模拟。代码如下:/* * bigDataMulti.cpp * * Created on: 2012-10-7 * Author: happier */#include #include #include using na
2012-10-07 13:26:41
1035
原创 简单题-不用库函数,求解一个数字的平方根
题目:如标题所示,不用平方根库函数,求解一个数字的平方根。分析:这个问题有两个思路:思路1:采用二分的方式(无处不在的二分),上界初始化为数字本身,下界初始化为1,这样用二分,判断中间数字的平方和目标数字比较,再修改上界和下界,直到小于一定的阈值。思路2:采用牛顿法(数值分析中提到),采用微分的方式,从初始点开始,每次迭代,微分求解切线,然后求解切线和x轴的交点,再以这个交点作
2012-10-04 23:14:11
8371
原创 全排列—存在重复元素
问题:全排列问题,但是存在重复元素,比如babc,求全排列,要求全排列不能包含重复串分析:由于存在重复元素,经典的全排列-递归方式不能达到题目要求,可以在原有全排列的基础上加入判断,还要对所有元素首先进行一次排序,具体代码如下:#include #include using namespace std;void SubPermutation(char a[], int s
2012-10-04 18:51:18
1636
原创 调整数组顺序实现:奇数在偶数前面 以及 “奇偶奇偶”相间
问题:问题一,需要重新排列数组,使得数组的奇数在前面,偶数在后面;问题二,使得“奇偶奇偶”相间,时间复杂度为O(n)。空间复杂度是O(1)。分析:第一个问题,马上想到的就是用两个指针的方法,一个放在头,一个放在尾,同时往中间走,不符合条件,再交换头和尾。第二个问题,没有什么好的思路,看到网友的思路,还比较认同的,但是时间复杂度有待商榷。代码如下:#includeusi
2012-10-04 17:31:00
1420
2
原创 字典树数据结构
题目:编写Trie树基本操作,包括插入,搜索,销毁分析:字典树,就是一棵26叉树(不考虑树的字符的大小写问题),在每个节点中加入计数器,表示从根节点到达当前节点的字符流表示一个字符串,代码如下:#include #include using namespace std;#define ELEMENT_MAX 26typedef struct trie_node{
2012-10-04 15:38:35
3713
原创 两个数组a[N],b[N],其中A[N]的各个元素值已知,现给b[i]赋值
题目:两个数组a[N],b[N],其中A[N]的各个元素值已知,现给b[i]赋值,b[i] = a[0]*a[1]*a[2]...*a[N-1]/a[i];要求:1.不准用除法运算2.除了循环计数值,a[N],b[N]外,不准再用其他任何变量(包括局部变量,全局变量等)3.满足时间复杂度O(n),空间复杂度O(1)分析:好久没做题了,这次做一个比较简单的题,由于题目
2012-10-04 14:34:07
3827
3
原创 删除K个数字,使剩下的数字串最大
题目:一个n位的数,去掉其中的k位,问怎样去掉使得留下来的那个(n-k)位的数最大?分析:可以直接用贪心来求解,每次寻找从头开始的连续递减序列,删除递减序列的最后一个元素,重复K次,最后剩下的数字串组成的数字最大。比如:“13787323”第一次,递减序列只有1,删除1,得到3787323第二次,递减序列只有3,删除3,得到787323第三次,递减序列只有7,删
2012-09-29 11:29:03
6298
1
原创 原地矩阵旋转
题目:原地矩阵旋转,只使用O(1)空间进行旋转分析:假如是一个一维数组,我们很容易进行旋转,但是对于二维矩阵,没有好的思路,不过大体思路应该和一维类似,找到网上有人介绍,直接转载过来,还有点看不明白,但是代码实现了,作者是正确的。-------------------------------矩阵的存储结构是用一块线性内存来存储数据,然后记录宽度、高度,大致如下c
2012-09-17 14:52:17
1615
4
原创 连续的正数序列,使得和为指定值
题目:连续的正数序列,使得和为指定值分析:以前做过类似的题目,求解两个数字和为指定值这种题目,采用先排序,然后从两头开始查找的方式,这题其实也差不多,采用两个指针,不过这次两个指针同时从头开始查找,初始化时first指针指向1,second指针指向2,如果curr_sum小于指定的sum,second指针往后移东;相反,如果curr_sum大于指定的sum,first指针往后移动。
2012-09-17 10:59:16
765
原创 在一维坐标轴上有n个区间段,求重合区间最长的两个区间段。
题目:在一维坐标轴上有n个区间段,求重合区间最长的两个区间段。分析:这题和《编程之美》时间安排的题目类似,可以用队列来表示,首先按照各个区间的左数字进行排序,然后依次入队列尾,如果遇到区间的右数,从队列头找其对应的左数,如果队列头是不是其对应的左数,说明这个区间被其他区间完全包围,相反,如果是其对应的左数,寻找其后面另一个左数,那么他们之间的差就是该区间能够形成的最大重合,最后统计
2012-09-16 18:58:03
4843
转载 不改变正负数相对顺序重新排列数组
看到网上一个解法,空间复杂度O(1),时间复杂度O(nlogn)做一个小算法题,提提神一个未排序整数数组,有正负数,重新排列使负数排在正数前面,并且要求不改变原来的正负数之间相对顺序。思考的过程就略去了,直接说结果吧。我想到的算法,空间复杂度为O(1),时间复杂度为O(N*logN)。首先,定义这样一个过程为“翻转”:(a1,a2,...,am,b1,b2,...,
2012-09-16 11:02:09
1235
转载 各种字符串匹配算法总结
题目:一种可做特殊用途的字符串匹配算法http://www.ahcit.com/?p=1965这篇论文里面介绍了BF,KMP,ZZL等字符串匹配算法
2012-09-16 10:41:49
815
原创 动态数组和vector
网上看到有人写到动态数组的东西,感觉写的非常好,就直接转载过来了,其中有些小错误,帮他修改发上来。--------------------------------------------------------------------目录(?)[-]C/C++语言实现动态数组C数组的小问题动态数组的特征动态数组的实现随机访问动态增长C/C
2012-09-13 10:38:58
3899
转载 一致性hash算法 - consistent hashing
目录(?)[-]一致性 hash 算法( consistent hashing )基本场景hash 算法和单调性consistent hashing 算法的原理环形hash 空间把对象映射到hash 空间把cache 映射到hash 空间把对象映射到cache考察cache 的变动虚拟节点小结一致性 hash 算法( consistent hashing
2012-09-13 09:30:29
645
转载 高效使用VIM
高效使用vim (Efficient Editing With vim)原英文教程见 (Original tutorial in English)http://jmcpherson.org/editing.htmlAbout copyright: I sent e-mail to Jonathan McPherson (author of this tutorial
2012-09-11 22:29:31
1047
原创 寻找丑数
题目:我们称只包含因子2,3,5的数为丑数,比如9,但是14不是,因为包含因子7。我们要求找到前1500个丑数。分析:直观的方法就是穷举1,2,3...n,每次得到一个数,我们穷举它的因子2,3,5,穷除这些因子后,数最后只剩1,表示这个数是丑数,但是这种方法显然不好,计算量大。另一种方法,类似于筛选素数的方法,我们将已经得到丑数,乘上2,3,5,那么新生成的数也一定是丑数,关键问
2012-09-09 15:31:23
1152
原创 判断一个后序遍历是否正确
题目:一棵二叉查找树,得到一个后序遍历,判断这个后序遍历是否正确。分析:方法1,根据中序和后序根据中序和后序,可以唯一得到一棵二叉树。一棵二叉查找树的中序显然就是所有数字的正常排序,所以,我们首先将所有的后序得到的数字排序,时间复杂度是O(nlogn),然后根据后序和中序遍历,判断二叉树是否可以建立。总的时间复杂度就是O(nlogn)。方法2,直接利用查找二叉树的性质显
2012-09-09 15:00:47
1671
原创 蓄水池抽样问题
题目:微软电面问到的问题,前面提了一大堆背景,最后归结为一个问题,如何在连续的网络流量中,等概率随机抽取1个数据包。分析:参加电面时,还没看过蓄水池抽样问题,后来回来一搜,这就是典型的蓄水池抽样问题,不过当时自己也想到了一种解法,使用一个变量保存数据包,从1到i个数据包,每次遇到第i个数据包,以1/i的概率选取这个数据包,并且替换原来的数据包,这样到第n个数据包,我们能保证我们以1/n
2012-09-06 16:02:17
3193
原创 尾序列问题
问题:在《编程珠玑》一书中,提到字符串旋转问题,比如有字符串ab旋转得到字符串ba,那么可以通过(a'b')'得到,其中“ ' ”表示整个字符串旋转。在这个问题中,比如"abace"通过在不同位置旋转,可以得到"eabac","ceaba","aceab","bacea",将这些字符串按照字典排序,得到:abaceaceabbaceaceabaeabac这样得到尾序
2012-09-05 11:19:46
1567
cc2431定位原理手册
2009-12-07
cc2430中文使用手册
2009-12-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人