随笔分类 -  面试题

摘要:/*题目描述:翻转句子中单词的顺序,但单词内字符的顺序不变。句子中单词以空格符隔开。为简单起见,标点符号和普通字母一样处理。如:"I am a student."翻转成"student. a am I"。常见面试题*/#include<iostream>#include<vector>#include<assert.h>#include<cstring>using namespace std;void swap(char &a, char &b){ char tmp = b; b = a; 阅读全文
posted @ 2012-07-17 20:35 Frank@609 阅读(5001) 评论(1) 推荐(0)
摘要:/*题目描述:无界背包问题。给定一个背包的容量W以及n种物品的价值p[i]及重量w[i],求使背包恰好装满的物品价值的最大值,如不存在,则输出impossible。HDOJ 1114*/#include<iostream>#include<vector>#include<assert.h>#include<cstring>using namespace std;const int N = 500+10;struct Coin{ int price; int weight;};Coin coin[N];int f[10000+10]; //f[i] 阅读全文
posted @ 2012-07-13 11:00 Frank@609 阅读(456) 评论(0) 推荐(0)
摘要:http://www.alibuybuy.com/posts/16841.html这个仔细看看,能够帮助理解系统设计中的很多概念HDUACM的PPT,十多个,http://acm.hdu.edu.cn/forum/thread.php?fid=24如果时间不够,至少看一下动态规划+贪心算法+搜索入门算法导论中动态规划一章,多看几遍,非常好编程之美,hehaitao博客,选着练习,别费太多时间C/C++,要清楚多态以及多态是如何实现的:http://blog.csdn.net/haoel/article/details/1948051Java内存回收机制:java编程思想好像有讲系统设计方面,多 阅读全文
posted @ 2012-07-12 12:15 Frank@609 阅读(194) 评论(0) 推荐(0)
摘要:/*题目描述:最长公共字串问题(LCS)。如果字符串一的所有字符按其顺序出现在另外一个字符串二中,则字符串一称之为字符串二的字串。注意,并不要求子串(字符串一)的字符连续出现在字符串二中。请编写一个函数,输入两个字符串,求它们的最长公共子串,并打印其中任意一个最长公共子串。例如:BDCABA和ABCBDAB,字符串BCBA和BDAB都是它们的最长公共子串。*/#include<iostream>#include<vector>#include<assert.h>#include<cstring>using namespace std;const 阅读全文
posted @ 2012-07-11 10:07 Frank@609 阅读(317) 评论(0) 推荐(0)
摘要:1 /* 2 题目描述:一个数组是由一个递减数列左移若干位形成的,比如{4,3,2,1,6,5}是由数组 3 {6,5,4,3,2,1}左移两位形成的。写一个程序,实现查找这种数组中的某一个数的功能。 4 */ 5 6 #include<iostream> 7 #include<string> 8 #include<cassert> 9 using namespace std;10 11 const int NOT_FOUND = -1;12 13 //key为要找的值.14 int find(int arr[], int len, int key)15 { 阅读全文
posted @ 2012-07-10 22:17 Frank@609 阅读(388) 评论(0) 推荐(0)
摘要:这里是题目链接。/* 题目描述:求一个n*n二维矩阵的最大子矩阵,maxSum。*/#include<iostream>#include<vector>#include<cstdio>#include<cstring>#include<assert.h>using namespace std;//Problem C//2012-7-10//by frankconst int N = 103;const int INF = -9999;/*算法思想:对于一维的数组,我们可以很容易用动态规划的方法求得最大子数组;所以我们将i=[0...n 阅读全文
posted @ 2012-07-10 09:26 Frank@609 阅读(704) 评论(0) 推荐(0)
摘要:这是题目描述。这道题目曾经也是Google、Hulu的一道面试题。对于这道题目,关键是要能够想到这一点:即对于任意一个丑数f[i],它都是由它前面的丑数乘以2,3,5或者7得到的。那么如果我们已经得到f[0] 到 f[i],怎样才能得到f[i+1]呢?可能你会怎么想(我刚开始也是这么想的)。我们已经有第一个丑数f[1] = 1,那么就设一个游标i=1指向f[1],然后依次将2,3,5,7与f[i]相乘,即我们可以得到2,3,5,7,然后依次将这些丑数加入到f[i]中,f[2] = 2, f[3] = 3, f[4] = 5, f[5] = 7,接着讲游标i++指向2,再分别于2,3,5,7相乘 阅读全文
posted @ 2012-07-07 20:03 Frank@609 阅读(2049) 评论(0) 推荐(0)