算法

Two Sum 的 PHP 解法
Two Sum 的 PHP 解法

Two Sum 的 PHP 解法

2020-09-16 03:45:04阅读全文

Add Two Numbers 的php解法
Add Two Numbers 的php解法

个人博客:https://www.gwlin.com/posts/5717

2020-09-17 15:22:49阅读全文

数据结构-PHP实现Array
数据结构-PHP实现Array

这篇文章是展示如何使用PHP语言实现Array这种数据结构。

2020-10-19 08:11:19阅读全文

数据结构-PHP通过 Array 类对象实现 "栈"
数据结构-PHP通过 Array 类对象实现 "栈"

这篇文章是展示如何使用PHP语言实现栈(Stack)这种数据结构,Stack也是一种线性结构,相比 Array 而言,Stack 对应的操作是 Array 的子集,只能从一端添加元素,也只能从一端取出元素,是一种 Last In First Out(LIFO),即 后进先出 的结构,Stack 的应

2020-10-20 02:36:44阅读全文

数据结构-PHP "栈" 结构匹配花括号有效性
数据结构-PHP "栈" 结构匹配花括号有效性

这篇文章是展示如何使用栈(Stack)这种数据结构来匹配花括号有效性,首先抛出问题,这里直接贴出问题如下:

2020-10-20 11:49:34阅读全文

数据结构-PHP通过 Array 类对象实现 "队列"
数据结构-PHP通过 Array 类对象实现 "队列"

这篇文章是展示如何使用PHP语言实现队列(Queue)这种数据结构,Queue也是一种线性结构,相比 Array 而言,Queue 对应的操作是 Array 的子集,只能从一端(队尾)添加元素,也只能从另外一端(队首)取出元素,是一种 First In First Out(FIFO),即 先进先出 

2020-10-20 19:26:16阅读全文

数据结构-PHP 类对象实现 ‘链表’
数据结构-PHP 类对象实现 ‘链表’

这篇文章是展示如何使用PHP语言实现 链表(Linked List) 这种数据结构,Linked List 是一种最简单的动态数据结构,学习 Linked List 可以帮助更深入地理解指针和递归,可以用来组织更复杂的数据结构,它的特点是数据存储在 节点(Node) 中,节点中还存储了指向下一个节点

2020-10-20 23:47:59阅读全文

数据结构-PHP通过链表类对象实现 "栈"
数据结构-PHP通过链表类对象实现 "栈"

这篇文章是展示如何使用PHP语言实现的链表类(LinkedList),然后通过链表来实现的 栈(Stack) 只能从栈顶添加元素,也只能从栈顶取出元素,是一种 Last In First Out(LIFO),即 后进先出 的结构。

2020-10-21 02:12:45阅读全文

PHP通过带尾指针的链表实现'队列'
PHP通过带尾指针的链表实现'队列'

这篇文章是展示通过 PHP 语言实现一种带尾指针的链表,然后通过链表来实现队列,其中链表的头元素 head 是用于列队出队的,它的时间复杂度 O(1),若在 head 的基础上实现链表尾部入队时间度为 O(n),为了降低入队操作的时间复杂度,可以给链表维护一个带有尾指针的变量 tail,这样每次入队

2020-10-21 09:45:14阅读全文

二分搜索树介绍&PHP 定义节点
二分搜索树介绍&PHP 定义节点

这篇文章是介绍 二叉树 和 二分搜索树,然后通过 PHP 代码定义一下 二分搜索树(Binary Search Tree) 的节点。

2020-10-22 09:59:05阅读全文

PHP 实现递归删除链表元素
PHP 实现递归删除链表元素

这篇文件介绍一下 递归,递归的本质是将原来的问题转化为更小的同一个问题,解决这些更小问题的过程。下面通过两个递归的例子帮助学习对递归的理解。

2020-10-22 12:55:15阅读全文

数据结构-PHP 实现二分搜索树
数据结构-PHP 实现二分搜索树

这篇文章是介绍 二叉树 和 二分搜索树,然后通过 PHP 代码定义一下 二分搜索树 的节点,使用递归思想操作向二分搜索树添加元素,然后实现了递归判断二分搜索树上是否包含某个元素,最后分别实现了前序遍历、中序遍历、后序遍历 二分搜索树。

2020-10-23 20:11:32阅读全文

数据结构-PHP 压栈遍历二分搜索树
数据结构-PHP 压栈遍历二分搜索树

前面写了一篇的文章,实现的方法是用的递归思想遍历,这篇文章主要介绍一下如何使用 压栈 的思想来遍历二分搜索树。

2020-10-25 08:17:50阅读全文

数据结构-PHP 二分搜索树的层序遍历(队列实现)
数据结构-PHP 二分搜索树的层序遍历(队列实现)

​前面文章介绍了二分搜索树的 前序遍历、中序遍历、后续遍历,这篇文章主要介绍一下如何使用 队列 实现二分搜索树的 层序遍历。

2020-10-25 20:38:58阅读全文

数据结构-PHP 映射(Map)实现
数据结构-PHP 映射(Map)实现

这篇文章主要介绍如何实现 映射(Map),映射是一个存储(键,值)数据对的数据结构(key-value),它的特点是根据键(key)去寻找值(value),下面主要介绍如何使用 链表 去实现 映射(Map)和使用 二分搜索树(Binary Search Tree) 去实现 映射(Map)。

2020-10-26 18:26:19阅读全文

数据结构-PHP 优先级队列(最大堆)的实现
数据结构-PHP 优先级队列(最大堆)的实现

​这篇文章主要介绍如何使用最大堆这种数据结构实现优先队列。

2020-10-28 21:03:23阅读全文

数据结构-PHP 输出数组中出现频率最高的前 k 个
数据结构-PHP 输出数组中出现频率最高的前 k 个

​这篇文章主要是通过一个问题实现过程,选择合适的数据结构,结合之前介绍过的 基于二分搜索树实现的映射(Map) 和 最小堆两种数据结构,可以将问题实现过程的时间复杂度降低。

2020-10-30 12:23:09阅读全文

数据结构-PHP 线段树的实现
数据结构-PHP 线段树的实现

线段树是基于区间的统计查询,线段树是一种 二叉搜索树,它将一个区间划分成一些单元区间,每个单元区间对应线段树中的一个叶结点。使用线段树可以快速的查找某一个节点在若干条线段中出现的次数,时间复杂度为O(logN),线段树是一颗 平衡二叉树。

2020-10-31 20:20:27阅读全文

数据结构-PHP 字典树(Trie)的实现
数据结构-PHP 字典树(Trie)的实现

​这篇文章介绍一下字典树的实现原理,又称单词查找树、Trie树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:利用字符串的公共前缀来减少查询时间,最大限度地减少无谓的字符串比较,查询效率比哈希树

2020-11-01 01:13:37阅读全文

数据结构-PHP 并查集(Union Find)
数据结构-PHP 并查集(Union Find)

这篇文章主要介绍一下 并查集,并查集 支持合并(Union) 和 查询(Find)两种操作,其中 合并(Union) 表示把两个不相交的集合合并为一个集合,查询(Find) 表示查询两个元素是否在同一个集合中。

2020-11-02 08:48:31阅读全文

数据结构-PHP 平衡二叉树(AVL)的平衡原理
数据结构-PHP 平衡二叉树(AVL)的平衡原理

这篇文章主要介绍一下 平衡二叉树(AVL),对于 二分搜索树 来说,如果树上的 元素 是顺序 添加的,会导致数据退化成一个 链表,这样就会造成很严重的性能问题,此时就需要在 二分搜索树 的基础上,保证元素插入时平衡,在了解 AVL 之前,需要您对 二分搜索树 有一定的了解,可以参考之前的文章。

2020-11-08 02:52:00阅读全文

数据结构-PHP 哈希表(Hash Table)的实现
数据结构-PHP 哈希表(Hash Table)的实现

​这篇文章主要介绍一下哈希表(Hash Table)的实现原理,哈希表(Hash Table) 也叫散列表,它通过把关键码值(key-value)映射到表中一个位置来访问,以加快其查找的速度。这个映射函数叫做哈希函数,存放记录的数组叫哈希表(Hash Table)。

2020-11-18 10:26:18阅读全文

链表的翻转&判断链表是否有环
链表的翻转&判断链表是否有环

​通过学习 链表的翻转 和 判断链表是否有环 这两个简单的例子加深对链表这种数据结构的理解。

2020-12-09 05:59:42阅读全文

PHP 归并排序(Merge Sort)
PHP 归并排序(Merge Sort)

​归并排序 时间复杂度属于 O(nlogn) 级别的,相比于 O(n^2) 级别的排序算法,在处理大的数据量时,它的优势非常明显,下面通过原理图和代码演示介绍归并排序是如何实现 O(nlogn) 时间复杂度级别的。

2020-12-12 09:55:03阅读全文

Go中的channel怎么实现的???
Go中的channel怎么实现的???

相信大家在开发的过程中经常会使用到go中并发利器channel,channel 是CSP并发模型中最重要的一个组件,两个独立的并发实体通过共享的通讯channel进行通信。大多数人只是会用这么个结构很少有人讨论它底层实现,这篇文章讲写写channel的底层实现。

2021-08-23 23:22:41阅读全文

leetcode-Day1
leetcode-Day1

1, 删除排序数组中的重复项https://leetcode-cn.com/leetb...给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。

2021-09-14 19:24:25阅读全文