摘要:
题目:一个url指向的页面里面有另一个url,最终有一个url指向之前出现过的url或空,这两种情形都定义为null。这样构成一个单链表。给两条这样单链表,判断里面是否存在同样的url。url以亿级计,资源不足以hash。如果交叉则最后节点的url肯定是相同的!不管链表是怎么链接的,不管链表a和链表b在实际实现中是不是有节点交叉,还是仅仅是节点的内容交叉,两个链表的最后节点肯定相同,如果是重复的话!要审题认真,认真考虑题目,最好能画图,这样就不会思路偏了一旦出现链表的题目,就一定要考虑到环和交叉的问题;本题可以抽象为有环和无环情况下的链表交叉问题:情况一:两条单链表均无环 最简单的一种... 阅读全文
摘要:
(1)如果说,在操作系统中引入进程的目的,是为了使多个程序能并发执行,以提高资源利用率和系统吞吐量。那么,在操作系统中再引入线程,则是为了减少程序在并发执行时所付出的空间开销,使OS具有更好的并发性。进程是作为拥有系统资源的基本单位,同时也是一个可独立调度和分派的基本单位(线程也是)。通常进程包含多个线程并为它们提供资源(2)线程安全:如果你的代码所在的进程中有多个线程在同时运行,而这些线程可能会同时运行这段代码。如果每次运行结果和单线程运行的结果是一样的,而且其他的变量的值也和预期的是一样的,就是线程安全的。或者说:一个类或者程序所提供的接口对于线程来说是原子操作或者多个线程之间的切换不会导 阅读全文
摘要:
题目:一个单词单词字母交换,可得另一个单词,如army->mary,成为兄弟单词。提供一个单词,在字典中找到它的兄弟。描述数据结构和查询过程。解法一:使用hash_map和链表(1)首先定义一个key,使得兄弟单词有相同的key,不是兄弟的单词有不同的key。例如,将单词按字母从小到大重新排序后作为其key,比如bad的key为abd,good的key为dgoo。 (2)使用链表将所有兄弟单词串在一起,hash_map的key为单词的key,value为链表的起始地址。 (3)开始时,先遍历字典,将每个单词都按照key加入到对应的链表当中。(4)当需要找兄弟单词时,只需求取这个单词的ke 阅读全文