Leetcode PHP题解--D108 404. Sum of Left Leaves

D108 404. Sum of Left Leaves 题目链接 404. Sum of Left Leaves 题目分析 计算二叉树中所有左子节点的值之和。 思路 遍历二叉树。遍历左节点时传入标识。若遍历的当前的左右子树皆为空,且当前节点是左节点时,算入合内。 最终代码 ...

Go 语言面向对象编程系列教程(四) —— 通过组合实现类的继承和方法重写

Go 语言不是像 PHP 等传统面向编程实现那样通过 extends 关键字来显式定义子类与父类之间的继承关系,而是通过组合方式实现类似功能,显式定义继承关系的弊端有两个:一个是导致类的层级复杂,另一个是影响了类的扩展性,设计模式里面推荐的也是通过组合来替代继承提高类的扩展性。 我们来看一个例子,现在有一个父类 Animal,有一个属性 name 用于表示名称,和三个成员方法,分别用来获...

Leetcode PHP题解--D107 453. Minimum Moves to Equal Array Elements

D107 453. Minimum Moves to Equal Array Elements 题目链接 453. Minimum Moves to Equal Array Elements 题目分析 给定一个数组,对数组中的N-1个数组每次加1,返回最少需要多少步才能使得所有元素值相等。 思路 先想到的思路是,每一步都挑最小的n-1个元素去加。但很明显,每一步都排序排除最大的数字,再逐...

Go 语言面向对象编程系列教程(三) —— 为基本数据类型添加成员方法

在 Go 语言中,你可以给任意类型(包括基本类型,但不包括指针类型)添加成员方法,但是如果是基本类型的话,需要借助 type 关键字对类型进行再定义,例如: type Integer int func (a Integer) Equal(b Integer) bool { return a == b } 注意,这个时候 Integer 已经是一个新的类型了,这与 type I...

Leetcode刷题之PHP解析( 154. Find Minimum in Rotated Sorted Array II)

还是需要通过中间点查找,不同的是每次二分查找如果等于中间数,那么直接把左边的向右边的移动一位,大于或者小于的情况,我们都可以求出这局部的最小值,然后缩小分区,最后进行求左中右三部分的最小值即整体最小值。...

Leetcode PHP题解--D106 997. Find the Town Judge

D106 997. Find the Town Judge 题目链接 997. Find the Town Judge 题目分析 给定一个数组N代表人数,和给定一个数组,每个元素为一个只有两个值(a,b)的数组。 代表a信任b。 从中找到一个b,b不信任任何人,但所有a都信任的b。我们称它为法官。 思路 也即任何a是不能成为法官的。信任法官的人数需要等于N-1。 用array_colum...

【永久开源】layuimini —— 最简洁、清爽、易用的 layui 后台框架模板

* 界面足够简洁清爽,响应式且适配手机端。 * 一个接口`几行代码而已`直接初始化整个框架,无需复杂操作。 * 页面支持多配色方案,可自行选择喜欢的配色。 * 支持多tab,可以打开多窗口。 * 支持无限级菜单和对font-awesome图标库的完美支持。 * 失效以及报错菜单无法直接打开,并给出弹出层提示`完美的线上用户体验`。 * url地址hash定位,可以清楚看到当前tab的地址...

Leetcode基础刷题之PHP解析(153. Find Minimum in Rotated Sorted Array)

这道题做个类似的,也是在哪个点发生旋转,求一个数,想不起来了,可以去看之前有关二分查找的题目,他并不是让你直接使用内置函数,或者自己写遍历,这样时间复杂度都是O(n),应该通过二分查找来确定最小值所在的区间范围。...

基于 Swoole 构建高性能 Laravel 应用系列 —— Swoole 驱动的 Laravel 应用优化原理及注意事项

上篇教程学院君给大家简单介绍了 Swoole 底层组件和运行原理,今天我们结合 Laravel 框架来介绍基于 Swoole 驱动的 Laravel 应用开发与传统的基于 PHP-FPM 的 Laravel 应用开发有哪些区别,在开发过程中要注意些什么。 Swoole vs. PHP-FPM 我们先来看看传统的基于 PHP-FPM 的 Laravel 应用启动和请求处理流程: 如上图所...