随笔分类 -  算法练习

面试题级别的算法练习
摘要:逆序数的题最经典的就是求逆序对数,可以直接冒泡然后记录交换的次数,时间复杂度O(n^2)。也可以用修改版的归并排序来做,时间复杂度会降到O(nlogn)。然后,有一种题是有一队人,每个人都知道自己的身高和前面比自己高的人数,队伍解散后怎么才能恢复队伍?这个题给的信息实际上就是逆序对数,根据逆序对数恢复元素位置,我想到的办法是用类似于插入排序的东西来做。下面有实现代码,现根据身高求出每个人前... 阅读全文
posted @ 2012-08-29 17:12 紫红的泪 阅读(751) 评论(0) 推荐(0) 编辑
摘要:题意是计算两个二进制的字符串的和,返回值依然是个二进制字符串。直接写自然不好搞,于是把整个步骤拆解为两个二进制字符与进位相加。实际上任意类似的加法都可以这样拆解。 // add a and b and carry, return a + b + carry. // carry will be updated when add char. char add_ch... 阅读全文
posted @ 2012-08-25 21:12 紫红的泪 阅读(2447) 评论(0) 推荐(0) 编辑
摘要:反转链表是一个常见的面试题,现在出现了N多种的变形,各种增加难度。今天看到了一个从m反转到n的,于是手写代码试了试。发现要想把所有情况覆盖全达到bug free还是挺难的。于是,根据各种反转链表题总结了一些比较简练的代码。比较:接口限定的反转链表。 // From curr reverse to end, return reversed linked list head.... 阅读全文
posted @ 2012-08-25 10:22 紫红的泪 阅读(516) 评论(0) 推荐(0) 编辑
摘要:天天准备面试题,有复杂的算法有简单的数据结构。但是总是有些常考的经典排序算法:插入排序/堆排序/快排/归并排序。日常工作中谁也不会2B到自己写这些排序,这些纯应付面试用,你懂的! // insert sort template<typename T> void insert_sort(T *begin, T *end) { if (be... 阅读全文
posted @ 2012-08-19 22:59 紫红的泪 阅读(669) 评论(0) 推荐(0) 编辑
摘要:题目:Bridging signals (POJ 1631) 链接:http://acm.pku.edu.cn/JudgeOnline/problem?id=1631 #include <iostream> #include <vector> #include <limits.h> using namespace std; // O(... 阅读全文
posted @ 2012-08-12 23:00 紫红的泪 阅读(245) 评论(0) 推荐(0) 编辑
摘要:题目:Longest Ordered Subsequence (POJ 2533) 链接:http://acm.pku.edu.cn/JudgeOnline/problem?id=2533 #include <iostream> #include <vector> using namespace std; int LIS(const vec... 阅读全文
posted @ 2012-08-12 21:50 紫红的泪 阅读(290) 评论(0) 推荐(0) 编辑
摘要:题目:Testing the CATCHER (POJ 1887) 链接:http://acm.pku.edu.cn/JudgeOnline/problem?id=1887 #include <iostream> #include <vector> using namespace std; int main(int argc, char *... 阅读全文
posted @ 2012-08-12 15:26 紫红的泪 阅读(257) 评论(0) 推荐(0) 编辑
摘要:题目:AGTC (POJ 3356) 链接:http://acm.pku.edu.cn/JudgeOnline/problem?id=3356 #include <iostream> #include <string> #include <algorithm> using namespace std; int matrix[1001]... 阅读全文
posted @ 2012-08-12 12:26 紫红的泪 阅读(227) 评论(0) 推荐(0) 编辑
摘要:题目:Zipper (POJ 2192) 链接:http://acm.pku.edu.cn/JudgeOnline/problem?id=2192 #include <iostream> #include <string> #include <memory.h> using namespace std; bool dp[201][20... 阅读全文
posted @ 2012-08-11 18:01 紫红的泪 阅读(194) 评论(0) 推荐(0) 编辑
摘要:题目:Human Gene Functions (POJ 1080) 链接:http://acm.pku.edu.cn/JudgeOnline/problem?id=1080 #include <iostream> #include <memory.h> #include <string> using namespace std; i... 阅读全文
posted @ 2012-08-11 16:49 紫红的泪 阅读(266) 评论(0) 推荐(0) 编辑
摘要:链接:https://www.interviewstreet.com/challenges/dashboard/#problem/4fe12e4cbb829 分析:可以把rating看成一个有升有降的数组,然后数组中存在三种区域(连续升、连续降、水平),区域的最小长度为1。举个例子,rating[] = [1, 2, 3, 3, 4, 2],则direction[] = [↑, ↑, 〓, ↑,... 阅读全文
posted @ 2012-08-10 17:34 紫红的泪 阅读(637) 评论(0) 推荐(0) 编辑
摘要:题目:Palindrome (POJ 1159) 链接:http://acm.pku.edu.cn/JudgeOnline/problem?id=1159 #include <iostream> #include <string> #include <memory.h> #include <algorithm> using namespace ... 阅读全文
posted @ 2012-08-05 21:35 紫红的泪 阅读(233) 评论(0) 推荐(0) 编辑
摘要:题目:Compromise (POJ 2250) 链接:http://acm.pku.edu.cn/JudgeOnline/problem?id=2250 #include <iostream> #include <string> #include <vector> #include <memory.h> #include <algorithm> ... 阅读全文
posted @ 2012-08-05 18:11 紫红的泪 阅读(221) 评论(0) 推荐(0) 编辑
摘要:题目:Common Subsequence (POJ 1458) 链接:http://acm.pku.edu.cn/JudgeOnline/problem?id=1458 #include <iostream> #include <string> #include <algorithm> using namespace std; in... 阅读全文
posted @ 2012-08-05 17:11 紫红的泪 阅读(218) 评论(0) 推荐(0) 编辑
摘要:题目:Strange Towers of Hanoi (POJ 1958) 链接:http://acm.pku.edu.cn/JudgeOnline/problem?id=1958 #include <iostream> #include <limits.h> using namespace std; int main(int argc, ... 阅读全文
posted @ 2012-08-05 15:15 紫红的泪 阅读(249) 评论(1) 推荐(0) 编辑
摘要:题目:World Cup Noise (POJ 1953) 链接:http://acm.pku.edu.cn/JudgeOnline/problem?id=1953 #include <iostream> using namespace std; int main(int argc, char **argv) { int sc... 阅读全文
posted @ 2012-08-04 21:11 紫红的泪 阅读(270) 评论(1) 推荐(0) 编辑
摘要:题目:Recaman's Sequence (POJ 2081) 链接:http://acm.pku.edu.cn/JudgeOnline/problem?id=2081 #include <iostream> #include <memory.h> using namespace std; bool exist[9999999]; ... 阅读全文
posted @ 2012-08-04 21:08 紫红的泪 阅读(335) 评论(1) 推荐(0) 编辑
摘要:题目:Function Run Fun (POJ 1579) 链接:http://acm.pku.edu.cn/JudgeOnline/problem?id=1579 #include <iostream> #include <cstdio> #include <algorithm> #include <memory.h> using name... 阅读全文
posted @ 2012-08-04 17:45 紫红的泪 阅读(276) 评论(1) 推荐(0) 编辑
摘要:题目:The Triangle (POJ 1163) 链接:http://acm.pku.edu.cn/JudgeOnline/problem?id=1163 #include <iostream> #include <memory.h> using namespace std; int main(int argc, char **argv... 阅读全文
posted @ 2012-08-04 16:25 紫红的泪 阅读(563) 评论(3) 推荐(0) 编辑