摘要: 题解:观察测试样例,会发现每个子集的选择规律与二进制((2^n) - 1)到 1 的顺序生成的规律是一致的,样例中n=3,2^n-1=7,用二进制表示为111,其中每一位的1表示数组中的三个数都选择。 阅读全文
posted @ 2017-07-11 08:19 czcColud 阅读(567) 评论(0) 推荐(0)
摘要: 牛牛有一个鱼缸。鱼缸里面已经有n条鱼,每条鱼的大小为fishSize[i] (1 ≤ i ≤ n,均为正整数),牛牛现在想把新捕捉的鱼放入鱼缸。鱼缸内存在着大鱼吃小鱼的定律。经过观察,牛牛发现一条鱼A的大小为另外一条鱼B大小的2倍到10倍(包括2倍大小和10倍大小),鱼A会吃掉鱼B。考虑到这个,牛牛要放入的鱼就需要保证: 1、放进去的鱼是安全的,不会被其他鱼吃掉 2、这条鱼放进去也不能吃掉其他鱼... 阅读全文
posted @ 2017-07-07 14:57 czcColud 阅读(134) 评论(0) 推荐(0)
摘要: 某个对象可以被设置为是可观察的,只要通过某种方式允许其他对象注册为观察者。每当被观察的对象改变时,会发送信息给观察者。 _observers as $obs) $obs->onChanged($this, $name); } public function addObserver($observer) { $this->_observers []= $observ... 阅读全文
posted @ 2017-07-04 13:39 czcColud 阅读(194) 评论(0) 推荐(0)
摘要: 测试模式主要为了让客户类能够更好地使用某些算法而不需要知道其具体的实现。 阅读全文
posted @ 2017-07-04 13:37 czcColud 阅读(206) 评论(0) 推荐(0)
摘要: 这种模式允许使用不同的接口重构某个类,可以允许使用不同的调用方式进行调用: 阅读全文
posted @ 2017-07-04 13:35 czcColud 阅读(195) 评论(0) 推荐(0)
摘要: 装饰器模式允许我们根据运行时不同的情景动态地为某个对象调用前后添加不同的行为动作。 阅读全文
posted @ 2017-07-04 12:48 czcColud 阅读(162) 评论(0) 推荐(0)
摘要: Builder(构造者) 阅读全文
posted @ 2017-07-04 12:33 czcColud 阅读(232) 评论(0) 推荐(0)
摘要: 有些时候,部分对象需要被初始化多次。而特别是在如果初始化需要耗费大量时间与资源的时候进行预初始化并且存储下这些对象。 阅读全文
posted @ 2017-07-04 12:20 czcColud 阅读(123) 评论(0) 推荐(0)
摘要: AbstractFactory(抽象工厂模式) 有些情况下我们需要根据不同的选择逻辑提供不同的构造工厂,而对于多个工厂而言需要一个统一的抽象 阅读全文
posted @ 2017-07-04 11:27 czcColud 阅读(207) 评论(0) 推荐(0)
摘要: 工厂模式是另一种非常常用的模式,正如其名字所示:确实是对象实例的生产工厂。某些意义上,工厂模式提供了通用的方法有助于我们去获取对象,而不需要关心其具体的内在的实现 阅读全文
posted @ 2017-07-04 11:25 czcColud 阅读(167) 评论(0) 推荐(0)