随笔分类 - ACM之数据结构
0.2.1 优先队列
0.2.2 线性表
0.2.3 散列表
0.2.4 并查集
0.2.5 排序
0.2.6 ST表
0.2.7 树状数组
0.2.8 线段树
0.2.9 可并堆
0.2.10 平衡树
0.2.11 动态树
摘要:solution:
阅读全文
摘要:solution: 需要注意这里的字符不仅仅是英文字母,字符char不多于256个,数组范围设为256即可。O(n)的扫描字符串,每遇到相同的,比对max。
阅读全文
摘要:solution1: 1 class Solution { 2 public: 3 struct pair{ 4 std::vector<int>* v; 5 int i; 6 7 bool operator < (const pair &a) const{ 8 return (*v)[i] > (
阅读全文
摘要:You are given a set Y of n distinct positive integers y1, y2, ..., yn. Set X of n distinct positive integers x1, x2, ..., xn is said to generate set Y
阅读全文
摘要:A new web-design studio, called SMART (Simply Masters of ART), employs two people. The first one is a web-designer and an executive director at the sa
阅读全文
摘要:应用场景: 搜索引擎会通过日志文件把用户每次检索使用的所有检索串都记录下来,每个查询串的长度为1-255字节。 假设目前有一千万个记录(这些查询串的重复度比较高,虽然总数是1千万,但如果除去重复后,不超过3百万个。一个查询串的重复度越高,说明查询它的用户越多,也就是越热门。),请你统计最热门的10个
阅读全文
摘要:一, 简介 Finite State Transducers 简称 FST, 中文名:有穷状态转换器。在自然语言处理等领域有很大应用,其功能类似于字典的功能(STL 中的map,C# 中的Dictionary),但其查找是O(1)的,仅仅等于所查找的key长度。目前Lucene4.0在查找Term时
阅读全文
摘要:为了解释后缀表达式的好处,我们先来看看,计算机如何应用后缀表达式计算出最终的结果20的。 后缀表达式:9 3 1-3*+ 10 2/+ 规则:从左到右遍历表达式的每个数字和符号,遇到是数字就进栈,遇到是符号,就将处于栈顶两个数字出栈,进行运算,运算结果进栈,一直到最终获得结果。 规则:从左到右遍历表
阅读全文
摘要:我们把平时所用的标准四则运算表达式,即“9+(3-1)*3+10/2"叫做中缀表达式。因为所有的运算符号都在两数字的中间,现在我们的问题就是中缀到后缀的转化。 中缀表达式“9+(3-1)*3+10/2”转化为后缀表达式“9 3 1-3*+ 10 2/+” 规则:从左到右遍历中缀表达式的每个数字和符号
阅读全文
摘要:题目:改进的Joseph环。一圈人报数,报数上限依次为3,7,11,19,循环进行,直到所有人出列完毕。 思路:双向循环链表模拟。 代码: 当N为20时,出列顺序是:
阅读全文
摘要:题目:给定两个无环的单链表,判断两者是否相交(即有共同的节点)。 思路:可以将其中一个链表连接到另一个链表尾部,并通过判定得到新的链表是否有环来确定两个链表是否相交。 代码:
阅读全文
摘要:题目:在N个不相等的整数中找出最大的第K个数(N>K)。 思路:首先,用前K个整数构造容量为K的最小堆。然后,将后N-K个整数依次与堆顶元素比较,若比堆顶元素大,则替换堆顶元素并调整最小堆结构;反之,则继续比较下一个整数。最终,最小堆存储最大的k个数,其堆顶元素即为所求。 代码: 时间复杂度:O((
阅读全文
摘要:http://acm.uestc.edu.cn/#/problem/show/1324 卿学姐与公主 卿学姐与公主 Time Limit: 2000/1000MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others) Time Limit:
阅读全文
摘要:C++的STL很强大,强大到我只愿慵懒地去使用而不知其所以然。直到李师问我,我的回答被李师否定,我方才意识到自己是多么地浅陋。希望自己有空抽时间把STL源码给研究一下,化为自己真正可以掌控的力量。 set容器的原型:template <class Key, class Compare=less<Ke
阅读全文
摘要:1.线性表顺序表倒置算法:int len=strlen(l);int i=0;while(ilchird; if(p->LTag!=1) while(pre->RTag!=1) pre=pre->rchild; return pre;}Node InPostNode(Node p){ Node po...
阅读全文
摘要:上篇的链接为:http://www.cnblogs.com/jiu0821/p/4677184.html这次是偶然看到一个题目,很好玩,便记在这里吧!Bitwise AND of Numbers Range给出一个范围,[m, n](0 >=1; 7 n>>=1; 8 ...
阅读全文
摘要:套用系列一的线性表类,又加了三个成员函数: 1 #include 2 #include 3 #include 4 #include 5 6 using namespace std; 7 8 #define N 100 9 enum Status{success,fail...
阅读全文
摘要:一个线性表的类: 1 #include 2 #include 3 #include 4 #include 5 6 using namespace std; 7 8 #define N 100 9 enum Status{success,fail,fatal,range_error,ove...
阅读全文
摘要:三道leetcode上的题目。Single NumberGiven an array of integers, every element appearstwiceexcept for one. Find that single one.题意即:一个数组,里面的元素每个都出现了两次,除了一个特殊的,...
阅读全文
摘要:http://www.lintcode.com/en/problem/find-the-missing-number/#Find the Missing NumberGiven an array containsNnumbers of 0 ..N, find which number doesn't...
阅读全文