#include <list> #include <iostream> using std::list; /* 双向环状链表 //每一个结点 一个数据域 一个前驱指针 一个后驱指针 随机插入方便0(1) 随机访问效率低0(n) */ bool foo(int a) { return a % 2 ==... ...
分类:
其他好文 时间:
2019-10-31 18:20:55
阅读次数:
67
题目描述 有一条彩色宝石项链,是由很多种不同的宝石组成的,包括红宝石,蓝宝石,钻石,翡翠,珍珠等。有一天国王把项链赏赐给了一个学者,并跟他说,你可以带走这条项链,但是王后很喜欢红宝石,蓝宝石,紫水晶,翡翠和钻石这五种,我要你从项链中截取连续的一小段还给我,这一段中必须包含所有的这五种宝石,剩下的部分 ...
分类:
其他好文 时间:
2018-10-27 14:49:33
阅读次数:
123
HashMap:先说HashMap,HashMap是线程不安全的,在并发环境下,可能会形成环状链表(扩容时可能造成,具体原因自行百度google或查看源码分析),导致get操作时,cpu空转,所以,在并发环境中使用HashMap是非常危险的. HashTable:HashTable和HashMap的 ...
分类:
编程语言 时间:
2018-10-20 16:14:43
阅读次数:
160
题目: 一个环状链表(收尾相连),两个指针 head1 和 head2 从同一个节点出发,head1 每次 走一步,head2 每次走两步,请证明,两个指针第一次相遇于出发的节点 思路:假设两个节点相遇时,慢节点距离出发节点为c,环状链表中有n个节点。 慢节点速度v,经过t时间相遇后的路程为:c = ...
分类:
其他好文 时间:
2018-07-16 00:26:54
阅读次数:
205
编码实现环状单向链表(尾指针直接指向头指针,中间没有空节点),去除连续的重复元素的操作。
比如:1(头)->2->2->3->3->1->1(头) 去除以后的结果是1->2->3,注意头尾的1也要去掉一个。
//时间复杂度为O(N)
//空间复杂度为O(1)
//代码如下:
#include
#include
#include
#include
#include
#i...
分类:
其他好文 时间:
2015-08-05 22:20:05
阅读次数:
110
判断单链表是否存在环,如果存在则寻找环的入口点,用快慢指针法...
分类:
其他好文 时间:
2014-09-24 00:09:15
阅读次数:
214