算法
LRZ0001
这个作者很懒,什么都没留下…
展开
-
合并两个有序数组 (PHP)
<?php//合并两个有序数组function mergeArr($arr1, $arr2){ $p1 = count($arr1) - 1; $p2 = count($arr2) - 1; $p = $p1 + $p2 + 1; while ($p1 >= 0 && $p2 >= 0) { $arr1[$p--] = ($arr1[$p1] > $arr2[$p2]) ? $arr1[$p1--] : $ar原创 2020-07-06 22:42:16 · 909 阅读 · 0 评论 -
php实现快速排序 原地排序
<?php//快速排序$arr = [5,3,6,8,1,9,4];function quickSort($arr) { $n = count($arr); quickSortC($arr, 0, $n - 1); return $arr;}function quickSortC(&$arr, $left, $right) { if ($left >= $right) { return; } $mid = pa原创 2020-07-04 08:20:48 · 178 阅读 · 0 评论 -
杨辉三角 python实现
def triangles(): L = [1] yield L while True: L = [([0] + L)[i] + (L+[0])[i] for i in range(len(L) + 1)] yield L#打印10行n = 1for t in triangles(): if n > 10: break n = n+1 print(t)原创 2020-06-30 11:33:36 · 204 阅读 · 0 评论 -
trie树 PHP实现
Tire主要包含两个操作,一个是将字符串集合构造成 Trie 树。这个过程分解开来的话,就是一个将字符串插入到 Trie 树的过程。另一个是在 Trie 树中查询一个字符串。Trie 树是个多叉树,在这里用数组来存储一个节点的所有子结点。Trie树节点类,PHP代码实现:<?php class TrieNode{ public $data; public $children = []; public $isEndingChar = false;原创 2020-06-27 09:40:01 · 162 阅读 · 0 评论 -
php 二分查找
PHP 二分查找非递归/** * 二分查找算法 * @param array $arr 待查找区间 * @param int $number 查找数 * @return int 返回找到的键 */function binary_search($arr, $number) { // 非数组或者数组为空,直接返回-1 if (!is_array($arr)...原创 2020-04-02 13:05:27 · 133 阅读 · 0 评论 -
PHP 实现二叉树 插入 排序
<?phpclass tree{ public $value; public $left; public $right; public function __construct($value = null){ $this->value = $value; } public function add($tree, ...原创 2020-03-27 17:57:54 · 274 阅读 · 0 评论 -
leetcode 3. 无重复字符的最长子串 Go PHP
题目给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。示例 2:输入: “bbbbb”输出: 1解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。示例 3:输入: “pwwkew”输出: 3解释: 因为无重复字符的最长子串是 “wke...转载 2020-03-26 09:38:00 · 112 阅读 · 0 评论 -
leetcode 2. 两数相加 Go PHP
给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -> ...原创 2020-03-12 02:40:28 · 162 阅读 · 0 评论 -
leetcode 1.两数之和 GO和PHP实现
给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]GO实现执行时...原创 2020-03-06 19:59:45 · 132 阅读 · 0 评论 -
桶排序(PHP实现)
function bucketSort($arr, $bucketSize = 5){ if (count($arr) === 0) { return $arr; } $minValue = $arr[0]; $maxValue = $arr[0]; for ($i = 1; $i < count($arr); $i++) { ...转载 2019-11-09 14:06:06 · 123 阅读 · 0 评论 -
猴子选大王:一群猴子排成一圈,按1, 2, ..., n依次编号。(约瑟夫环)
问题:一群猴子排成一圈,按1,2,…,n依次编号。然后从第1只开始数,数到第m只,把它踢出圈,从它后面再开始数,再数到第m只,在把它踢出去…,如此不停的进行下去,直到最后只剩下一只猴子为止,那只猴子就叫做大王。要求编程模拟此过程,输入m、n, 输出最后那个大王的编号&lt;?phpfunction king($n, $m){ $mokney = range(1, $n)...原创 2018-05-07 20:54:23 · 5657 阅读 · 1 评论