自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

一路向前

勇敢的走向远方

  • 博客(70)
  • 资源 (10)
  • 收藏
  • 关注

转载 mark mark mark

编译并使用静态lib----》》》》转自:Walkthrough: Creating and Using a Static Library (C++)

2014-12-26 10:45:41 601

原创 一个空的vector执行pop_back操作会发生什么?

由于之前看STL源码剖析的时候,发现所执行的操作如下:只是简单的将末尾的finish迭代器减1后destroy。这让人产生一个疑问:假如这个vector为空了,finish=start了,finish再减1不就不在vector的内存控制范围了么。于是,我打算看一下vs2013编译器和g++编译器的源码。vs2013的编译器源码如下:#if _ITERATOR_DEBUG_LEV

2015-07-23 20:54:49 7705

转载 How to kill a not responding application on Linux

转自:http://www.garron.me/en/go2linux/kill-not-responding-application-linux.htmlIntroductionI’ve seen this very few times in Linux, but yes sometimes it happens, an application or process st

2015-03-09 09:21:45 863

原创 【leetcode】003 Longest Substring Without Repeating Characters

首先利用hashmap和指针得到一个尽可能长的无重复字符的初始字符串,记录其长度和末尾指针。然后向后遍历,遇到第一个重复字符,更新长度信息,因为题目要求字串具有连续性,所以,我们若要往下继续寻找字串,肯定要包含遇到的这个重复字符。这时,我们可以利用滑动窗口的思想,假设新的字串包含了这个字符,则我们需要将前面保存好的子串中这个重复字符之前的字符全部去掉,利用这个规则我们可以更新老的字串的左右指针得到新串,继续往下遍历。直到遍历结束,我们将得到最大的字串长度。

2015-01-30 22:31:24 679

原创 【leetcode】002 Add Two Numbers

题目中提到是倒序存储,所有上述既为342+465=807。单链表,我们从题意很容易得到解题思路:用两个指针分别同步遍历两个链表将对应的节点值相加后,再加上前一对节点的进位值(初值为0)。用得到的新值模10后建立节点,并计算下一个节点的进位值。注意,若最后进位值不为0则需要增加一个尾节点。

2015-01-30 22:10:55 651

原创 【leetcode】001 Two Sum

第一反应是找出所有的配对,复杂度为O(n*n),这肯定不行。然后想到怎么样将时间复杂度减到O(n),每一个数我们肯定需要遍历一次。但对于配对时的找数的过程,我们可以利用hashmap的思想实现在O(1)时间确定是否存在我们需要找的数。 整个算法的过程为:遍历数组,对每一个遍历到的数若其对应的数hashmap中没有,则添加进hashmap;否则,证明我们已经找到两个数,结束程序。当我们遍历到的某一个数,其前面的数肯定已经在hashmap中。

2015-01-30 21:53:09 669

转载 k sum 问题系列

转自:http://tech-wonderland.net/blog/summary-of-ksum-problems.html(中文旧版)前言:做过leetcode的人都知道, 里面有2sum, 3sum(closest), 4sum等问题, 这些也是面试里面经典的问题, 考察是否能够合理利用排序这个性质, 一步一步得到高效的算法. 经过总结, 本人觉得这些问题都可以使用一个

2015-01-03 21:59:22 898

转载 正则表达式

转自:http://www.cnblogs.com/huxi/archive/2010/07/04/1771073.html本文介绍了Python对于正则表达式的支持,包括正则表达式基础以及Python正则表达式标准库的完整介绍及使用示例。本文的内容不包括如何编写高效的正则表达式、如何优化正则表达式,这些主题请查看其他教程。注意:本文基于Python2.4完成;如果看到不明白的词汇请记得百

2015-01-03 10:20:27 643

转载 Manacher算法--O(n)回文子串算法

转自:http://blog.csdn.net/ggggiqnypgjg/article/details/6645824O(n)回文子串算法注:转载的这篇文章,我发现下面那个源代码有点bug。。。在下一篇博客中改正了。。     这里,我介绍一下O(n)回文串处理的一种方法。Manacher算法.原文地址:http://zhuhongcheng.wordpr

2014-12-31 09:16:18 629

转载 leetcode难度及面试频率

转载自:LeetCode Question Difficulty Distribution              http://blog.csdn.net/yutianzuijin/article/details/11477603       1Two Sum

2014-12-30 21:36:39 885

转载 计算机视觉相关的部分测试数据集和源码站点

转自:http://blog.csdn.net/zhubenfulovepoem/article/details/7191794作者:zhubenfulovepoem以下是computer vision:algorithm and application计算机视觉算法与应用这本书中附录里的关于计算机视觉的一些测试数据集和源码站点,我整理了下,加了点中文注解。

2014-12-30 13:38:08 1020

转载 vs2008每次build都会重新编译链接 && 项目已经过期

转自:http://blog.csdn.net/movezzzz/article/details/6816605无外乎两种情况:1.时间问题,所创建的文件的时间比如是:2011-09-22 09:03:22,那么你的系统时间之前被你改动过当前时间是:2011-08-22 09:03:22。这下好了,vs每次编译的时候都会检查每个文件的最后修改日期,发现是上一个编译时间之后的

2014-12-28 17:53:31 2510

转载 Leading dimension

Leading dimension如果你用LAPACK解过矩阵本征值问题,你一定会接触到这样一个名词,“leading dimension”,比如在函数zheev中。我想绝大部分人在第一次接触这个词的时候都不明白它到底是什么意思。以前我也不明白,今天索性搜了一把,在下面找到了答案。http://icl.cs.utk.edu/lapack-forum/viewtopic.php?p=

2014-12-26 15:44:03 1362

原创 【剑指Offer面试编程题】题目1509:树中两个结点的最低公共祖先--九度OJ

首先是树的输入,这个利用中序遍历的特点递归输入就行。然后,我们需要判断给出的两个节点是否都在树中,不在直接输出非法信息。若都在树中则继续查找,这个时候我们需要递归查找,给定一个头节点和两个待查的节点值,首先判断如果节点值等于头结点的节点值,那么公共节点肯定就是头节点;否则,继续在头结点的左支和右支中间查找,若两个节点值分居左右支树中,那么公共节点肯定也就是头结点。否则我们可以通过左支或者右支返回的节点得到公共节点。

2014-12-25 22:27:38 1129

原创 【剑指Offer面试编程题】题目1508:把字符串转换成整数--九度OJ

本题应该难度不大,首先我们输入一个字符串,然后判断首位,若为符号则需要标记一下,若为数字则加入到结果中,若为其他的证明这个不是合法的字符串不需要往下处理。然后就是后面的字符处理,只需要接纳数字字符,遇到其他字符证明需要停止接纳了。最后输出结果即可。

2014-12-25 22:14:54 1154 3

原创 【剑指Offer面试编程题】题目1507:不用加减乘除做加法--九度OJ

求和而不用四则运算,我们可能需要联想到加法的机器实现,机器实现当然原理和位操作类似,所以,我们可以通过位操作来实现加法。 假设给出的num1和num2,首先我们将num1^num2得到那些0 1位应该相加,没有进位。然后,我们用num1&&num2得到所有进位组成的数,因为这个进位组成的数应该是左移一位然后加入到之前得到的那个没有进位的数中。若,还有进位,证明位操作还有冲突,需要继续左移并加入到之前的结果中。直到所有的进位处理完毕为止。

2014-12-25 21:34:45 1019

原创 【剑指Offer面试编程题】题目1506:求1+2+3+...+n--九度OJ

本题中开始思考发现有些棘手,不能用乘除法,但我们需要发现关键是我们可以用加减法,但加减法有一个问题,我们不能使用条件语句,也就意味我们不能轻易终止累加。那么我们想的是否有其他的操作可以替换条件语句来完成终止条件的任务,此时我们脑海里面只有逻辑操作这个候选了。是的,我们可以巧妙的利用0 和 && 的逻辑操作来作为终止条件。那么我们就可以轻易的设置一个递归函数,然后用&&来作为终止条件,完成任务。

2014-12-25 21:22:02 1194

原创 【剑指Offer面试编程题】题目1356:孩子们的游戏(圆圈中最后剩下的数)--九度OJ

本题是一个约瑟夫环问题,具体可以参考百度百科“约瑟夫问题”的思想。在本题中同样为了处理的方便,我们假设编号从0开始到n-1。在n个人时,我们知道编号k-1人在第一次肯定出局,那么剩下0.....k-2 k k+1......n-1组成新的相对于n个人的编号:k k+1......n-1 0.......k。剩下的n-1个人(0.......n-2)组成一个新的问题,问题规模变小,但其他都没变。那么我们可以假设n-1个人中间编号为ans的人为最后的胜利者,那么这个人对应于有n个

2014-12-25 20:40:41 922

原创 【剑指Offer面试编程题】题目1355:扑克牌顺子--九度OJ

本题应该还是思路比较清晰的一道题目了,我们首先统计一下大小王的个数,然后对给出的数进行排序,排序后我们统计出数字的空缺数字个数,比如若排序后是1 3,则空缺数字2,空缺的数字个数为1。最后我们比较大小王的个数与空缺数字的个数,若大小王个数少则无法补充空缺,牌不是顺子。否则是顺子。

2014-12-25 20:11:48 1079

转载 error C2143: syntax error : missing ';' before 'type'

转转自:点击打开链接(有问题可以告知删除)近来写程序时发现了一个问题,用 VC 编译 C语言是 总是提示一个错误:error C2143: syntax error : missing ';' before 'type'。考虑了很久也没有答案,于是上网搜索,终于在一位网友网易博客中找到了解决办法。解决方法如下:把所有变量的声明放在可执行代码之前。出现此问题的原因在于:将文件

2014-12-25 15:26:25 1025

原创 【剑指Offer面试编程题】题目1360:乐透之猜数游戏--九度OJ

题的概率等于次数除以总的次数,所以,我们可以记录次数,这样更加简单。然后,我们发现每投掷一次得到的次数,都与前面几次有关系,所以我们可以总结该问题为dp问题。 我们可以设aa[i][j]代码投掷i次,得到总和为j的次数。那么aa[i][j]=aa[i-1][j-k],其中k为单个骰子的出现的点数。建立dp连接式我们可以很快得到结果。当然最后我们需要先算出四舍五入的概率后再排序。

2014-12-24 22:25:20 1263

原创 【剑指Offer面试编程题】题目1362:左旋转字符串--九度OJ

这道题目应该还比较简单,注意对旋转的数字的取模处理,然后就是利用两个string来分别存下旋转的前后部分,组后综合输出即可。

2014-12-24 22:13:16 682

原创 【剑指Offer面试编程题】题目1361:翻转单词顺序--九度OJ

本题应该是传统的题型的变形,我们可以先读入一行,然后从最后的字符开始处理,对于字符串我们使之逆序输出,对于空格原样输出。 本题注意两点:空格需要原样输出,不管有多少个;另外,利用gets函数读入一行效率要比getline更高。

2014-12-24 22:12:08 870

原创 【剑指Offer面试编程题】题目1354:和为S的连续正数序列--九度OJ

本题当然不能用遍历的思想来解答,因为这样分类过多。根据题目的求和特点,我们应该想到公差为1的等差数列的求和,现在情况是和与公差已知,所以给定初始值和元素的个数两个变量中间的任意一个就可以求另外一个,这样题目的结果就出来了。 那么我们应该假定初始值还是个数呢,显然假定个数所要处理的情况更少,因为假定初始值,我们需要一直从1开始遍历到所给定的和近一半的数,耗时很大。所以我们确定个数,最大的个数应该就是当初始值取1时的个数。然后我们从最大的个数出发,依次将个数减一,若计算得到的初值为整数我们就找到了一个序

2014-12-24 21:46:44 1515

原创 【剑指Offer面试编程题】 题目1350:二叉树的深度--九度OJ

本题应该是传统题,直接用dfs就能解决。难点在于树的构建和根结点的寻找。

2014-12-24 21:35:45 784

原创 【剑指Offer面试编程题】题目1352:和为S的两个数字--九度OJ

本题是求和,我们首先可以考虑第一个元素该与哪个元素搭配,当然应该是最大的最后一个元素。对于这两个元素的和若与给定元素比较相等,当然是最好,直接输出。若比较后结果偏大,怎么调?当然只能是后面的那个元素前移;相对应的若偏小,则当然是前面的元素后移。最后我们能得到一个通过调整后相等的结果,若所有元素组合后没有满足条件,我们则认为数组没有和满足的组合。 那么这种思路为什么一定能找到呢?我们可以想象和为s的组合是其中的某一组,我们一定可以通过这种两端压缩的方式进行,原因是这种压缩的调整策略是一定的而且是合

2014-12-24 21:09:24 788

原创 【剑指Offer面试编程题】题目1349:数字在排序数组中出现的次数--九度OJ

本题很容易想到用map和set数据结构来完成。但map的构建和最后对map的查询需要的时间代价很大,但空间和时间应该是不允许的。综合查询操作和数组的有序的特点,我们采用二分查找来确定元素是否在数组里面。若在数组里面,则将其周围的元素的个数统计完成后输出。

2014-12-24 21:01:56 982

原创 【剑指Offer面试编程题】题目1505:两个链表的第一个公共结点--九度OJ

本题应该非常经典的题目了,但这种题目我们往往有时候需要注意来输入的不止两个链表的情况,但本题目中已经很清晰的说明了只有两个链表。另外,既然是单链表,就不存在有一个节点具有多个指针指向其他节点。 那么本题还是采用经典的尾部对其的做法,使两个链表尾部对齐后,两个链表同时开始向后扫描,若发现有一个元素值相同则表明两个链表具有相同的节点,后面的节点也就不同扫描了。若扫描完所有的节点都没有找到相同的节点,则表明两个链表不具有共同元素。

2014-12-24 20:50:41 725

原创 【剑指Offer面试编程题】题目1348:数组中的逆序对--九度OJ

本题还是有一定的难度的,首先我们不可能通过遍历的方案来完成,时间复杂度过高。然后我们可以想象,是否我们可以通过分块完成,完成字块的统计后,我们使字块有序,然后继续统计其他字块。最后我们合并统计字块。我们融入一种合并排序的思想,通过小块的统计并有序来构造更大的有序块,直到最后全部合并完成。对于两个有序小块之间包含的逆序对,我们只需要判断有限的组合即可完成统计。

2014-12-24 19:50:46 756

原创 【剑指Offer面试编程题】题目1283:第一个只出现一次的字符--九度OJ

本题有很多思路可以做,包括map set 排序等应用,但,时间却是个问题。既然提到了字母,我们不妨用最原始的方法,统计每个字母出现的次数,然后按照字母的输入次序遍历26个字母,当某一个字母的次数为1则该字母为所求,否则不存在这样的字母。

2014-12-23 23:00:09 671

原创 【剑指Offer面试编程题】题目1214:丑数--九度OJ

本题最直观的想法就是从1开始遍历,然后判断每一个数是否为丑数,但这样肯定是一种非常耗时间的做法,不可取。那么我们是否可用从丑数的特点出发呢,从另一个角度来思考问题,我们可以用2 3 5这三个数相乘来组成丑数,我们唯一需要确保的就是我们组成的丑数是按从小到大的关系出现的。我们可以想象一个丑数的出现是前面某一个丑数乘以2 /3 /5的结果,所以我们可以维护三个index,分别对应是2 3 5下一个应该相乘的数,然后依次去这三个数的最小值作为下一个丑数,并更新三个index。如此继续迭代。

2014-12-23 21:27:52 606

原创 【剑指Offer面试编程题】题目1504:把数组排成最小的数--九度OJ

这道题目首先需要看破的一点就是我们需要用字符串来处理,因为当数字拼接是很容易超过机器最大数。另外,我们需要从最简单、最原始的想法出发,来判断数字应该怎么拼接。我们可以想象成对给定的一堆字符串排序,使得最后的排序结果拼接后具有最小值,那么问题就转化为两个字符串谁前谁后的问题。问题已经很明了了,我们可以直接拼接两个字符串a,b成ab和ba。当a放前面拼接后的结果小则a应该放前面,否则b应该放前面。

2014-12-23 21:17:52 768

原创 【剑指Offer面试编程题】题目1373:整数中1出现的次数--九度OJ

对于给定一个数,算包含的1的个数,我们可以将这个数分为很多部分,然后分别算1的个数。首先我们很容易得到一个n位数中1的个数,n位数1的个数等于n-1位数中1的个数与10相乘加上第n位为1的额外增加的个数pow(10,n-1)。 例如给定101,可以从第一位开始计算,首先是两位数0-99中1的个数,然后是100 101中首位1的个数,然后到第二位0,不计算。第三位1,计算0位数1个数0个,然后计算1这个数1的个数为1。最后将所有计算结果相加。

2014-12-23 20:57:05 1154

原创 【剑指Offer面试编程题】题目1372:最大子向量和--九度OJ

这应该是一个非常经典的问题了,看到这种最后化问题,而且各结果之间具有一定的联系的题型,第一反应就是dp问题,因为一个数我们能确定,两个数的话我们可以根据一个数确定,同理第三个数出现后我们能根据前面的数确定。用一个数组记录到当前元素为止的最大和,并记录其起始元素编号。同时寻找最大值。

2014-12-22 23:03:39 653

原创 【剑指Offer面试编程题】题目1371:最小的K个数--九度OJ

本题首先想到的是利用二分查找确定一个元素的位置,然后比较这个位置是在k之前还是之后,若这个位置等于k则停止,否则继续在分开的两个子区间里面确定k位置的元素,直到确定k位置元素后停止。然后对前k个元素排序即可得到前k个有序序列。 但考虑到上面的做法代码比较复杂,且要求通用的话,时间复杂度也挺高。所以决定用一个笨办法试试,直接对所有元素排序,然后取前k个元素输出即可。

2014-12-22 22:47:08 540

原创 【剑指Offer面试编程题】题目1370:数组中出现次数超过一半的数字--九度OJ

这道题目需要注意的一点就是:比较容易和另外一个题目相混淆,另外一个题目是从一堆数中找到出现次数超过一半的那个数,可以利用一次遍历找到。 但本题却是要完成两个任务:确定是否存在那个数+找出那个数。所以本题没法在O(N)的时间复杂度情况下完成,当然本题的解题方法有很多,但都是得好好利用这个出现次数超过一半这一特性。首先必须明确,我们队数组排序后,因为如果存在这个数,则中间元素肯定就是那个要找的值。其中一个解法:首先将数字排序,然后取中间元素值,统计有多少个元素等于中间元素值。若统计的结果比一半小,

2014-12-22 22:33:51 756

原创 【剑指Offer面试编程题】题目1369:字符串的排列--九度OJ

由于需要字典序,首先肯定是要先对所给的字符串进行排序,然后很容易想到穷举法,但这边穷举法还有要避免重复,所以,有一定的技巧。我们有三个元素abb,最后输出时三元组,则我们可以将三个位置都看做由所有元素来填充的序列。负责度应该是一个n的n次方,但中间可以有一些剪枝。 由于n的大小不固定,我们没法确定是几层循环,所以只能用递归操作来进行遍历。对每一次递归调用都遍历n个元素哪个适合加入到结果队列res中,同时,我们设置一个used变量来控制某个元素是否已经在res中,避免重复添加。当检测到res的长度

2014-12-22 22:00:09 676

原创 【剑指Offer面试编程题】题目1503:二叉搜索树与双向链表--九度OJ

解题的第一步当然是建树,给出先序遍历的二叉搜索树,自然就可以利用树的先序遍历的特点进行建树。先处理当前节点,再递归处理左支与右支。当遇到0则当前节点为空,退出递归。 第二步则是顺序的调整,顺序的调整当然利用二叉搜索树的中序遍历具有的排序功能,对该树进行中序遍历,且在遍历的时候动态的将节点的左右指针值更改掉。且需要维护一个前节点指针pr,将当期节点的pre指针指向pr,pr的next指针指向当期节点,完成双向链接,然后更新pr为当前节点,继续递归。若当前节点为空则退出递归。 当

2014-12-22 21:07:38 631

原创 【剑指Offer面试编程题】题目1524:复杂链表的复制--九度OJ

这道题目主要还是题目的意思有点混淆不清吧,所谓的输出“第二个代表当前节点的特殊指针的值”,很有可能理解成当前节点的指针值,也就是元素的编号。但实际是指针所指的元素的值。题目当然肯定是很简单的,只需要利用两个vector存下元素的值和指针值,然后输出的利用元素的下标即元素的编号也即指针值处理就好。

2014-12-22 20:36:06 584

原创 【剑指Offer面试编程题】题目1368:二叉树中和为某一值的路径--九度OJ

这道题目的思路应该还是比较清晰的,首先DFS是基础,然后在DFS过程中记录过经过的节点,并注意更新路径的和值,当然也需要动态的维护好经过节点的序列,注意增删,也即访问的时候需要增,当需要往回撤时需要删除节点。最后需要对保存的结果序列排序。

2014-12-20 23:27:30 1053

浙大PAT advanced level 1001--1091答案代码

浙大pat甲级1001到1091题目答案,供参考。

2015-10-02

九度-剑指Offer习题全套答案

使用vs2010编写,直接用vs2010打开加压后的.sln文件即可看到所有的代码,右键点击某一个cpp-“属性”-“从生成中排除”-“否”,即可运行该cpp,注意相应其他cpp该属性要设置为“是”。九度OJ上面的剑指Offer习题全套答案,全部AC,且具有较好的时间复杂度。部分参考网络上的idea,但代码已经尽量要求简洁,是OJ练习不可多得的参考代码。

2014-12-19

浙大PAT basic level 1001-1030答案源代码

纯原创代码,所有代码通过PAT平台的测试,使用vs2010 IDE打开即可运行。可能代码优化还不是很好,忘指教。

2014-09-29

Android从入门到精通+经典教程

Android从入门到经典教程,it is good

2014-09-10

CULA解ax=b问题的代码

这是cula库解决ax=b 的代码,里面步骤比较清晰,只需要从main函数里面直接调用即可

2014-09-10

Programming Massively Parallel Processors, Second Edition

GPU开发的后期可以看看,对于提高很有帮助的,帮你更加深入的了解GPU编程。台湾著名作者所写,在coursra上有开过课程的。

2014-09-10

挑战程序设计竞赛.pdf

搞程序设计竞赛的也可以参考,是不错的选择,里面涵盖的东西也比较多

2014-09-10

The_CUDA_Handbook.pdf

这是英伟达的推荐书籍,很不错,有分很多实例讲解,也有代码。便于边学,边练习

2014-05-18

浙大计算机05-12年考研机试真题及源代码

这个一份完全的05-12年的浙江大学计算机考研机试真题和源代码,全部通过九度OJ、杭电OJ、天勤OJ等的测试。

2013-04-11

空空如也

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

TA关注的人

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