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

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

Leetcode基础刷题之PHP解析( 73. Set Matrix Zeroes)

这整体思路就是先扫描第一行第一列如果有0的行列,各自标识一下。再扫描其后的数组,如果存在0,则将对应的第一行第一列设置成0,接着再判断除去第一行第一列之后的数组,如果第一行或者第一列有一个是0,那么直接设置它的值是0,最后通过标识把第一行第一列的值更新是否为0。有点绕,具体看代码...

Leetcode PHP题解--D104 167. Two Sum II - Input array is sorted

D104 167. Two Sum II - Input array is sorted 题目链接 167. Two Sum II - Input array is sorted 题目分析 给定一个已经排序好的整数数组,从中寻找两个数字,使其相加之后等于给定的一个数字。 返回这两个数字对应的下标。 思路 首先想到的思路当然是逐个遍历,但是会超时。就不细说了。 之后想到的是用二分法找到小于...

基于 Swoole 构建高性能 Laravel 应用系列 —— Swoole 的底层架构及运行原理

前面我们已经陆续介绍了 Swoole 提供的各种功能,回过头来再看 Swoole 官网的那句 Slogan:「面向生产环境的 PHP 异步网络通信引擎」,想必你会有更加深切的体会,有了 Swoole 扩展,我们可以在 PHP 中轻松实现多进程、异步编程和并发编程,从而开发出高性能、可扩展的 Web 应用。 接下来,我们来探讨下 Swoole 的底层架构和运行原理,以便你可以在开发过程中更...

Leetcode PHP题解--D103 447. Number of Boomerangs

D103 447. Number of Boomerangs 题目链接 447. Number of Boomerangs 题目分析 给定一个坐标数组,从中任意取3个坐标(i,j,k),使得从i到j的距离等于i到k的距离。且(i,j,k)与(i,k,j)不是同一个组合,需单独计算。 思路 逐个遍历,计算两点距离。并记录在一个数组中。 对于具有相同距离的边的个数,组合数量有以下规律: 当有...

Leetcode PHP题解--D102 383. Ransom Note

D102 383. Ransom Note 题目链接 383. Ransom Note 题目分析 给定一个字符串,判断这些字母在另一个给定的字符串中,出现次数是否相等。 思路 先获取两个字符串中各字符的出现次数,再逐个遍历,判断出现次数是否满足条件。 最终代码 ...

Leetcode PHP题解--D100 387. First Unique Character in a String

D100 387. First Unique Character in a String 题目链接 387. First Unique Character in a String 题目分析 返回给定字符串中第一个只出现了一次的单词下标。 若没有,则返回-1。 思路 把遇到的单词存进两个数组。 一个用来记录只出现了一次的数组A,另一个记录出现了不只一次的数组B。 遍历每个字母,当当前字母存...

Leetcode PHP题解--D99 860. Lemonade Change

D99 860. Lemonade Change 题目链接 860. Lemonade Change 题目分析 这道题目是典型的收银问题了。 假设你在开店第一天没有零钱,你的商品卖5元。纸币有5元、10元、20元三种。给定一个数组代表你今天遇到的客人在买东西时给的钱。判断你的钱箱能不能顺利给每一位客人找零。(假设每一位客人都只买一件商品) 思路 首先判断客户给的是哪种。 如果是5元的话,...