给定一棵二叉树,找到两个节点的最近公共父节点(LCA)。 最近公共祖先是两个节点的公共的祖先节点且具有最大深度。 样例 对于下面这棵二叉树 4 / \ 3 7 / \ 5 6 LCA(3, 5) = 4 LCA(5, 6…
标签:架构
用习惯思维催化单元测试
不同的人对单元测试的理解可能不同,本文中提到的单元测试是指同时满足下面两个条件的测试: 运行时间在0.1秒之内。(因为如果一个测试访问了数据库,文件系统或其它外部依赖,运行时间肯定超过0.1秒,可以参考《Working …
设计模式读书笔记一 单例模式
1、单例模式介绍 单例模式是应用最广泛的模式之一,也是可以说是初级工程师唯一会用的设计模式。在应用这一模式的时候,单例对象的类必须保证只有一个实例存在。许多时候整个系统只要一个全局对象,这样有利于我们协调系统整体行为。如…
剑指offer第二版-15.二进制中1的个数(位运算)
本系列导航:剑指offer(第二版)java实现导航帖 面试题14:剪绳子 题目要求: 实现一个函数,输入一个int型整数,输出该数字在计算机中二进制表示形式的1的个数。例如9->1001,输出2;-3->1…
剑指offer第二版-5.替换空格
本系列导航:剑指offer(第二版)java实现导航帖 面试题5:替换空格 题目要求: 实现一个函数,把字符串中的每个空格都替换成“%20”,已知原位置后面有足够的空余位置,要求改替换过程发生在原来的位置上。 packa…
剑指offer第二版-35.复杂链表的复制
本系列导航:剑指offer(第二版)java实现导航帖 面试题35:复杂链表的复制 题目要求:在复杂链表中,每个节点除了有一个next指针指向下一个节点,还有一个random指针指向链表中的任意节点或null,请完成一个…
C#枚举类型常用扩展方法(三)
C#获取枚举值特性(Display、Description、自定义特性) 一、Display特性 internal enum Days : byte { [Display(Name = "星期天", Descriptio…
设计模式(三)——工厂模式
本文属于系列文章《设计模式》,附上文集链接 工厂模式定义 定义一个创建对象的接口,由子类决定要实例化的类是哪一个。工厂方法让类把实例化推迟到子类 作用:没使用工厂的话,我们要创造对象使用new,工厂方法就是帮我们负责创建…
Android框架之MVP实践
Android官方早期中其实没有所谓的MVC框架,在我还是新手的时候,一个完整的Android项目其实是很混乱的,传统的MVC框架在Android上体现的不是很明显。最近在看了MVP框架自己动手写了以下发现MVP在A…
《或与加》深度解析(第一篇算法分析)
题目描述: 给定x,k。求满足x+y=x|y的第k小的正整数y。 输入描述: 每组测试用例仅包含一组数据,每组数据为两个正整数x,k。满足0<x,k<2,000,000,000。 输出描述: 输出一个数y 输…
lintcode 数据流中位数
数字是不断进入数组的,在每次添加一个新的数进入数组的同时返回当前新数组的中位数。 您在真实的面试中是否遇到过这个题? Yes 说明 中位数的定义: 中位数是排序后数组的中间值,如果有数组中有n个数,则中位数为A[(n-1…
Block,Delegate ,Notification 各自特点
一、Block 它是带有局部变量的匿名函数,它是一段代码块,与C语言中的函数指针类似,可当做参数进行传值,且可以没有名字。(在我另外一篇文章中有详细介绍) 解决的问题 1.解决两个对象之间的通信问题(传值或者事件) 它既…