题目:
Given a linked list, return the node where the cycle begins. If there is no cycle, return null. 思路分析:
和《Leetcode: Linked List Cycle 》一样还是双指针的方法。一个循环链表如图
slow指针走了S=X+Y
fast指针走了F=X+Y+Z+Y
两个指针相遇。...
分类:
其他好文 时间:
2015-04-05 13:25:38
阅读次数:
216
题目:
Given a linked list, determine if it has a cycle in it. 思路分析:
利用快慢指针slow,fast。 slow指针每次走一步,fast指针每次走两步,倘若存在环,则slow和fast必定在某一时刻相遇。C++参考代码:/**
* Definition for singly-linked list.
* struct ListNo...
分类:
其他好文 时间:
2015-04-05 11:59:17
阅读次数:
99
如果一个链表有环,求环的起始位置。设置一个快指针每次走两步,一个慢指针每次走一步。若最终能相遇,则有环。如图:设:链表头是X,环的第一个节点是Y,slow和fast第一次的交点是Z。各段的长度分别是a,b,c,如图所示。环的长度是L。第一次相遇时slow走过的距离:a+b,fast走过的距离:a+b...
分类:
其他好文 时间:
2015-04-04 18:01:48
阅读次数:
157
针对kernel时钟系统初始化我有3个地方的思考:
(1)根据上面分析,clocksource在kernel下默认是有default,也就是jiffies,从default_clocksource获取的cycle就是jiffies值,精度只有1。而clockevent没有default,所以在编写timer driver时clockevent实现是必须的,我感觉clocksource倒是可选的,如果没有定义,使用default clocksource,jiffies在timer中断中更新,倒是也可以用。
...
分类:
系统相关 时间:
2015-04-03 17:35:26
阅读次数:
1266
浅复制:只复制指向对象的指针,而不复制引用对象本身。计数器+1 ,就像比如retain深层复制:复制引用对象本身。计数器不变,产生新对象retain:始终是浅复制。引用计数每次加一。返回对象是否可变与被复制的对象保持一致。copy:对于可变对象为深复制,引用计数不改变;对于不可变对象是浅复制,引用计...
分类:
其他好文 时间:
2015-04-02 14:52:52
阅读次数:
114
这道题是Linked
List Cycle的扩展,就是在确定是否有cycle之后还要返回cycle的起始点的位置。从Linked
List Cycle中用的方法我们可以得知a=kc-b(不了解的朋友可以先看看Linked
List Cycle)。现在假设有两个结点,一个从链表头出发,一个从b点出发,经过a步之后,第一个结点会到达cycle的出发点,而第二个结点会走过kc-b,加上原来的...
分类:
其他好文 时间:
2015-04-02 09:07:25
阅读次数:
104
浅复制:只复制指向对象的指针,而不复制引用对象本身。计数器+1 ,就像比如retain深层复制:复制引用对象本身。计数器不变,产生新对象retain:始终是浅复制。引用计数每次加一。返回对象是否可变与被复制的对象保持一致。copy:对于可变对象为深复制,引用计数不改变;对于不可变对象是浅复制,引用计...
分类:
其他好文 时间:
2015-04-01 21:35:47
阅读次数:
162
任何继承了NSObject的对象,都需要内存管理,但是对基本数据类型无效(不需要释放)原理:每个对象内部都保存了一个与之相关联的整数,称为引用计数器当使用alloc、new或者copy创建一个对象时,对象的引用计数器被设置为1给对象发送一条retain消息,可以使引用计数器值+1给对象发送一条rel...
分类:
其他好文 时间:
2015-04-01 15:06:20
阅读次数:
123
浅拷贝就比如像引用类型,而深拷贝就比如值类型。浅拷贝是指源对象与拷贝对象共用一份实体,仅仅是引用的变量不同(名称不同)。对其中任何一个对象的改动都会影响另外一个对象。举个例子,一个人一开始叫张三,后来改名叫李四了,可是还是同一个人,不管是张三缺胳膊少腿还是..
分类:
其他好文 时间:
2015-03-31 20:22:39
阅读次数:
122
copy:建立一个索引计数为1的对象,然后释放旧对象 对NSString对NSString 它指出,在赋值时使用传入值的一份拷贝。拷贝工作由copy方法执行,此属性只对那些实行了NSCopying协议的对象类型有效。更深入的讨论,请参考“复制”部分。retain:释放旧的对象,将旧对象的值赋予输入对...
分类:
其他好文 时间:
2015-03-30 16:13:43
阅读次数:
148