随笔分类 -  数据结构

摘要:如何最快的获取单链表的中间节点的位置? 给定一个单链表,不知道节点总个数,怎样只遍历一次就知道中间节点? 最容易想到的一个方法是:首先先遍历一遍获得节点个数,然后取一半作计数器再次遍历。这个方法遍历了两次,是最慢的方法。附Python代码 使用两个指针的方法,这个方法是面试题的正解。一个指针(P1) 阅读全文
posted @ 2017-10-17 20:40 西红柿牛腩 阅读(2648) 评论(0) 推荐(1)
摘要:Python的deque模块,它是collections库的一部分。deque实现了双端队列,意味着你可以从队列的两端加入和删除元素。 简单实例: 从队列两端pop数据 我们也可以限制deque中元素的个数,当deque的元素数超过能存放的元素数,它会从相对一端pop元素。例如: 我们也可以扩展de 阅读全文
posted @ 2017-10-12 10:15 西红柿牛腩 阅读(4251) 评论(0) 推荐(0)
摘要:KMP算法是字符串匹配算法的一种改进版,一般的字符串匹配算法是:从主串(目标字符串)和模式串(待匹配字符串)的第一个字符开始比较,如果相等则继续匹配下一个字符, 如果不相等则从主串的下一个字符开始匹配,直到模式串被匹配完,则匹配成功,或主串被匹配完且模式串未匹配完,则匹配失败。 KMP算法的改进之处 阅读全文
posted @ 2017-10-12 09:33 西红柿牛腩 阅读(550) 评论(0) 推荐(0)