Leetcode基础刷题PHP解析(103. Binary Tree Zigzag Level Order Traversal)

这道题的第一版是二叉数的层次遍历(Leetcode基础刷题之PHP解析(102. Binary Tree Level Order Traversal)),这一版让我们按照z字形遍历二叉树。什么意思呢,就是说如果当前层是从左往右遍历,那么下一层就从右往左遍历...

基于 Swoole 构建高性能 Laravel 应用系列 —— 通过 Swoole\Table 实现 Swoole 多进程数据共享

第三方存储媒介 前面我们介绍了基于 Swoole 的 Process 及 Process\Pool 模块在 PHP 中实现多进程管理,但是多进程模式下进程间是相互隔离的,无法共享数据和变量,即便是通过 global 定义的全局或超全局变量,也只是在所属进程中有效,如果要在 Swoole 实现的多进程间共享数据,需要借助第三方存储媒介实现: 数据库:MySQL、MongoDB 缓存:Re...

Leetcode PHP题解--D89 653. Two Sum IV - Input is a BST

D89 653. Two Sum IV - Input is a BST 题目链接 653. Two Sum IV - Input is a BST 题目分析 给定一个二叉树以及一个目标数字,判断能不能通过二叉树中任意两个节点的值相加得到。 思路 思路1 遍历的时候,先把节点存起来,并且与每一个值相加,判断是否等于所需值。 这个算法很明显效率比较低。 思路2 遍历的时候,把自身作为键存进...

Leetcode PHP题解--D88 696. Count Binary Substrings

D88 696. Count Binary Substrings 题目链接 696. Count Binary Substrings 题目分析 给定一个01字符串,返回仅用连续的0和1串所能组成的二进制字符串个数。 例如,00110011,就包含0011,01,1100,10,0011,01共6个。001100则不算,因为两个00被11分割开了,不是连续的。 思路 思路1: 生成01,0...

Leetcode PHP题解--D87 705. Design HashSet

D87 705. Design HashSet 题目链接 705. Design HashSet 题目分析 设计一个哈希类。 需要有add添加元素函数,contains判断元素存在的函数,remove移除元素函数。 思路 这真的没什么好说的了…我把要存的值作为数组的键存储。 最终代码 class MyHashSet { protected $values = []; /*...

Leetcode基础刷题之PHP解析(79. Word Search)

给定一个二维数组,其实可以理解成网格,然后让我们再网格中寻找是否存在指定的元素,当然它的寻找方式有点特殊,你只能在你需要匹配的当前字符串的上下左右的位置找下一个匹配的字符串,如果匹配那么继续找,就可以理解成下象棋一下 ,小兵的下一步只能左右上下?.emmmm打脸了,小兵不能后退。...

Leetcode PHP题解--D86 748. Shortest Completing Word

D86 748. Shortest Completing Word 题目链接 748. Shortest Completing Word 题目分析 从给定的一个字符串中提取字符。从另一个给定的单词数组中,选择出所提取的字符在单词中出现次数相等或大于的单词。若出现次数相同,则返回第一个符合条件的单词。 假定结果必定存在。 思路 先提取字符,转换成小写,并计算字符出现的次数。 遍历数组中的每...