摘要: 输入两个链表,找出他们的第一个公共结点。思想:我们可以先遍历一次得到分别得到两个链表的长度,然后计算得出长度差n,那么让较长的链表先走n步,然后两个链表一起向后走,直到两个指针指向同一个结点。这个结点就是我们要找的 结点。 阅读全文
posted @ 2014-05-15 22:21 月轩 阅读(376) 评论(0) 推荐(0) 编辑
摘要: 在数组中的两个数如果前面一个数大于后面的数字,则这俩个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。 例如:数组{7,5,6,4}中,一共存在5个逆序对,分别是(7,6)(7,5)(7,4)(6,4)(5,4)。 有两种方法: 第一种:顺序扫描法,时间复杂度是O(n2)。代码略。 第二种:运用归并排序的方法。思想是: 把数组递归的分成子数组,统计出相邻子数组的逆序对,统计过程中需对数组进行排序,防止重复统计。 阅读全文
posted @ 2014-05-15 18:04 月轩 阅读(341) 评论(0) 推荐(0) 编辑
摘要: Template 模式是很简单模式,但是也应用很广的模式。Template 是采用继承的方式实现算法的异构,其关键点就是将通用算法封装在抽象基类中,并将不同的算法细节放到子类中实现。Template 模式获得一种反向控制结构效果, 这也是面向对象系统的分析和设计中一个原则 DIP(依赖倒置:Dependency Inversion Principles) 。其含义就是父类调用子类的操作(高层模块调用低层模块的操作) ,低层模块实现高层模块声明的接口。这样控制权在父类(高层模块) ,低层模块反而要依赖高层模块。 阅读全文
posted @ 2014-05-15 14:24 月轩 阅读(266) 评论(0) 推荐(0) 编辑