摘要: 给定两个字符串s1和s2,要求判断s2是否能够被s1做循环移位得到的字符串包含。例如,给定s1=AABCD和s2=CDAA,返回true;给定s1=ABCD,s2=ACBD,返回false。 思路:最直接的方法是循环移位s1,遍历s1并判断是否包含s2。但这种方法效率不高。经书本提示,问题可转换为... 阅读全文
posted @ 2012-09-20 14:12 macemers 阅读(221) 评论(0) 推荐(0)
摘要: 假设一个没有头指针的单链表,只有一个指向中间节点(不是头尾节点)的指针,请将该节点从单链表中删除。 思路:假设中间一段链表为 A->B->C,而p指向节点B。因为没有头节点,其实无法追溯回A,然后使A->C。所以这里的技巧是将C中的value值赋给B中,使B成为C,然后删除真正的C,从而达到目的。... 阅读全文
posted @ 2012-09-20 13:22 macemers 阅读(538) 评论(0) 推荐(0)
摘要: 判断两个链表是否相交,若相交则求其交点(指第一个相交的点)。 思路1,利用计数法: 遍历链表1,将其节点的内存地址存入map或者hashmap内。然后遍历链表2,并查询map或者hashmap,判断链表2节点是否在里面。若存在,则两者相交,且交于此节点。此方法时间复杂度是O(Length(List... 阅读全文
posted @ 2012-09-20 10:29 macemers 阅读(418) 评论(0) 推荐(0)