2012年12月21日

摘要: 问题本身很简单,考虑扩展问题:如果链表有环的话,又或者求解相交的第一个节点,个人认为都是采用计数的方法比较适合。也就是说设置一个hash表,记录指针指向的地址,无论求是否有环或者找到第一个相交的节点都可以。唯一缺点是需要额外的空间。书上提到的第三个解法有些需要注意的地方:它不是一个线程安全的,因为在这个过程中,它改变的链表的结构(虽然最终会修改回来)。而且这种比较类型的功能函数一般都不应该更改它的值。LNode* JudgeIntersect(LNode *la, LNode *lb){ LNode *p = la, *q = lb; while(p != NULL){ ... 阅读全文
posted @ 2012-12-21 14:39 小龙人2012 阅读(164) 评论(0) 推荐(0)
摘要: 主要思想为递归求解,每一次都需要计算三种情况下的最小值。需要注意的是几个条件:1、一旦begin>end,则结束当前递归,返回值为0;2、如果当前pAbegin == pBbegin,则两个指针都直接跳到下一个字符;这里给出用map保存递归过程每一次的指针状态,以避免重复的递归计算(除结束状态,因为结束状态的计算无需递归,开销更小);定义MapCmp访函数做为排序准则时,需要注意满足三个条件,即strict weak ordering(反对称,可传递,非自反(这个容易遗忘));#include<iostream>#include<string>#include&l 阅读全文
posted @ 2012-12-21 00:33 小龙人2012 阅读(154) 评论(0) 推荐(0)

导航