![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
leetCode-php
less_cold
一个想要成为大哥的小白
展开
-
《leetCode-php》合并k个排序链表
合并k个排序链表采用分治法<?phpclass Node { public $next = null; public $val; public function __construct($val) { $this->val = $val; }}function mergeKLists($arrList) { $nu...原创 2019-12-13 12:39:39 · 226 阅读 · 0 评论 -
《leetCode-php》岛屿数量
给定一个由 '1'(陆地)和 '0'(水)组成的的二维网格,计算岛屿的数量。一个岛被水包围,并且它是通过水平方向或垂直方向上相邻的陆地连接而成的。你可以假设网格的四个边均被水包围。示例 1:输入:11110110101100000000输出: 1示例 2:输入:11000110000010000011输出: 3来源:力扣(LeetCode...原创 2019-12-13 11:43:50 · 212 阅读 · 0 评论 -
《leetCode-php》排列序列
集合[1,2,3,…,n]一共有n!种不同的排列按字典序列出所有的排列并且给这些排列标上序号我们就会得到以下的序列(以n=3为例)"123" "132" "213" "231" "312" "321"现在给出n和k,请返回第k个排列注意:n在1到9之间<?phpfunction getPermutation($n, $k) { $arr...原创 2019-11-24 10:58:53 · 152 阅读 · 0 评论 -
《leetCode-php》旋转链表
将给定的链表向右转动k个位置,k是非负数。例如:给定1->2->3->4->5->null , k=2,返回4->5->1->2->3->null。<?phpclass Node { public $next = null; public $val; public function __cons...原创 2019-11-24 09:53:13 · 153 阅读 · 0 评论 -
《leetCode-php》加上障碍的二维地图从头到尾的所有路径数量
继续思考题目"Unique Paths":如果在图中加入了一些障碍,有多少不同的路径?分别用0和1代表空区域和障碍例如下图表示有一个障碍在3*3的图中央。[↵ [0,0,0],↵ [0,1,0],↵ [0,0,0]↵]有2条不同的路径备注:m和n不超过100.<?phpfunction uniquePathsWithObstacles($arr...原创 2019-11-09 11:25:51 · 130 阅读 · 0 评论 -
《leetCode-php》加上障碍的二维地图从头到尾的所有路径数量
继续思考题目"Unique Paths":如果在图中加入了一些障碍,有多少不同的路径?分别用0和1代表空区域和障碍例如下图表示有一个障碍在3*3的图中央。[↵ [0,0,0],↵ [0,1,0],↵ [0,0,0]↵]有2条不同的路径备注:m和n不超过100.<?phpfunction uniquePathsWithObstacles($arr...原创 2019-11-09 11:25:31 · 139 阅读 · 0 评论 -
《leetCode-php》二维数组从头到尾的所有路径数量
一个机器人在m×n大小的地图的左上角(起点,下图中的标记“start"的位置)。机器人每次向下或向右移动。机器人要到达地图的右下角。(终点,下图中的标记“Finish"的位置)。可以有多少种不同的路径从起点走到终点?<?phpfunction uniquePaths($m, $n) { $arrNum = array(); for ($i = 0; $i &...原创 2019-11-09 11:22:46 · 362 阅读 · 0 评论 -
《leetCode-php》求二维数组从头到尾的最小路径和
给定一个由非负整数填充的m x n的二维数组,现在要从二维数组的左上角走到右下角,请找出路径上的所有数字之和最小的路径。注意:你每次只能向下或向右移动。<?phpfunction minPathSum($arrGrid) { $line = count($arrGrid); $col = count($arrGrid[0]); $arrOutput = a...原创 2019-11-09 10:57:47 · 245 阅读 · 0 评论 -
《leetCode-php》合并两个有序链表
将两个有序的链表合并为一个新链表,要求新的链表是通过拼接两个链表的节点来生成的。<?phpclass Node { public $next = null; public $val; public function __construct($val) { $this->val = $val; }}function mergeT...原创 2019-11-07 23:27:00 · 400 阅读 · 0 评论 -
《leetCode-php》二进制字符串相加
给出两个用字符串表示的二进制数,返回他们的和(也用字符串表示)例如:a ="11"b ="1"返回"100".<?phpfunction addBinary($a, $b) { $i = strlen($a) - 1; $j = strlen($b) - 1; $str = ''; $flag = 0; while ($i &g...原创 2019-11-07 23:08:25 · 149 阅读 · 0 评论 -
《leetCode-php》数组组成的正整数+1
给出用数字数组表示的一个非负整数,请对该整数加1。<?phpfunction plusOne(&$arrNum) { $num = count($arrNum); for ($i = $num - 1; $i >= 0; $i --) { if ($arrNum[$i] == 9) { $arrNum[$i] = ...原创 2019-11-07 00:01:33 · 119 阅读 · 0 评论 -
《leetCode-php》数组表示的整数+1
给出用数字数组表示的一个非负整数,请对该整数加1。<?phpfunction plusOne(&$arrNum) { $num = count($arrNum); for ($i = $num - 1; $i >= 0; $i --) { if ($arrNum[$i] == 9) { $arrNum[$i] = ...原创 2019-11-06 23:56:47 · 226 阅读 · 0 评论 -
《leetCode-php》文本换行
给定一个单词数组和长度L,将该单词数组中文本两端对齐(左边和右边),使每一行都有L个字符。你要在每一行中尽可能多地填充单词。在必要时填充额外的空格' ',使每行正好有L个字符。单词之间的额外空格要尽可能均匀地分布。如果一行的空格数不能在单词之间平均分配,请在左边分配更多的空格对于最后一行文本,它应该左对齐,并且单词之间不插入额外的空格。例如,单词数组为:["This", "is"...原创 2019-11-06 00:29:45 · 642 阅读 · 0 评论 -
《leetCode-php》求平方根
实现函数int sqrt(int x).计算并返回x的平方根已经不记得什么求平方根的高数算法了,所以写了一个low的<?php/** * @param $n * @return int * @brief 返回平方根的整数 */function buildSqrt($n) { $i = 1; while ($i * $i <= $n) { ...原创 2019-11-01 21:45:21 · 205 阅读 · 0 评论 -
《leetCode-php》爬楼梯
你在爬楼梯,需要n步才能爬到楼梯顶部每次你只能向上爬1步或者2步。有多少种方法可以爬到楼梯顶部?<?phpfunction climbStairs($n) { $arrStep = array( 2 => 2, 1 => 1, 0 => 0, ); for ($i = 3; $i <...原创 2019-11-01 21:36:36 · 264 阅读 · 0 评论 -
《leetCode-php》简化路径
请简化给出的Unix样式的文件绝对路径,也就是转换成规范路径在Unix样式的文件系统中,.代表当前目录,.. 表示将目录向上移动一级请注意,返回的规范路径必须以斜杠“/”开头,并且两个目录名之间只能有一个斜杠“/”开头。如果存在的最后一级目录的话不能以“/”结尾。另外,转化出的规范路径必须是能表示给出的绝对路径的最短字符串。例如:文件路径 = "/home/", =>"...原创 2019-11-01 21:18:21 · 182 阅读 · 0 评论 -
《leetCode-php》将一个字符串增删改为另一个字符串的最少步数
给定两个单词word1和word2,请计算将word1转换为word2至少需要多少步操作。你可以对一个单词执行以下3种操作:a)在单词中插入一个字符b)删除单词中的一个字符c)替换单词中的一个字符<?php/** * @param $word1 * @param $word2 * @return mixed * $arrStep[$j][$i]代表了第一个字符串的前i...原创 2019-11-01 20:39:20 · 1256 阅读 · 0 评论 -
《leetCode-php》替换矩阵中0的行和列都为0
给定一个m*n的矩阵,如果有一个元素是0,就把该元素所在的行和列上的元素全置为0,要求使用原地算法。拓展:你的算法有使用额外的空间吗?一种比较直接的算法是利用O(m,n)的空间,但是这不是一个好的解法使用简单的改进可以在O(m+n)的空间解决这个问题,但是还不是最佳的解法你能在常量级的空间复杂度内解决这个问题吗?<?php/** * @param $a...原创 2019-10-30 23:40:39 · 196 阅读 · 0 评论 -
《leetCode-php》二维矩阵查找
请写出一个高效的在m*n矩阵中判断目标值是否存在的算法,矩阵具有如下特征:每一行的数字都从左到右排序每一行的第一个数字都比上一行最后一个数字大<?php/** * @param $arrMatrix * @param $target * @return boolean * @brief 二分查找 */function searchMatrix($arrMatr...原创 2019-10-30 23:11:46 · 158 阅读 · 0 评论 -
《leetCode-php》颜色排序
现在有一个包含n个物体的数组,其中物体颜色为颜色为红色、白色或蓝色,请对这个数组进行排序,让相同颜色的物体相邻,颜色的顺序为红色,白色,蓝色。我们用0,1,2分别代表颜色红,白,蓝注意:本题要求你不能使用排序库函数扩展:一个非常直接的解法是两步的计数排序的算法首先:遍历一遍数组,记录0,1,2的数量,然后重写这个数组,先将0写入,再将1写入,再将2写入你能给...原创 2019-10-30 22:47:02 · 246 阅读 · 0 评论 -
《leetCode-php》最小窗口子字符串
给出两个字符串S和T,要求在O(n)的时间复杂度内在S中找出最短的包含T中所有字符的子串。例如:S="ADOBECODEBANC"T="ABC"找出的最短子串为"BANC".注意:如果S中没有包含T中所有字符的子串,返回空字符串 “”;满足条件的子串可能有很多,但是题目保证满足条件的最短的子串唯一。思路:采用滑动窗口,而且只有首尾都是T的字符的时候才有可能是...原创 2019-10-29 23:05:13 · 183 阅读 · 0 评论 -
《leetCode-php》两个代表数字的链表求和
给定两个代表非负数的链表,数字在链表中是反向存储的(链表头结点处的数字是个位数,第二个结点上的数字是百位数...),求这个两个数的和,结果也用链表表示。输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -> 8<?phpclass Node { public $next = null; p...原创 2019-10-17 20:51:39 · 214 阅读 · 0 评论 -
《leetCode-php》求一个字符串中的最长子串
给定一个字符串,找出最长的不具有重复字符的子串的长度。例如,“abcabcbb”不具有重复字符的最长子串是“abc”,长度为3。对于“bbbbb”,最长的不具有重复字符的子串是“b”,长度为1。<?phpfunction getMaxSubStr($string) { $len = strlen($string); $arrStr = array($string[0]...原创 2019-10-17 20:50:29 · 366 阅读 · 0 评论 -
《leetCode-php》寻找数组中两个数的和等于另一个数
给出一个整数数组,请在数组中找出两个加起来等于目标值的数,你给出的函数twoSum 需要返回这两个数字的下标(index1,index2),需要满足index1 小于index2.。注意:下标是从1开始的假设给出的数组中只存在唯一解例如:给出的数组为 {2, 7, 11, 15},目标值为9输出 ndex1=1, index2=2<?php/** * @p...原创 2019-10-16 22:05:30 · 799 阅读 · 0 评论 -
《leetCode-php》求n个连续数中m个数的组合
给出两个整数n和k,返回从1到n中取k个数字的所有可能的组合例如:如果n=4,k=2,结果为[↵ [2,4],↵ [3,4],↵ [2,3],↵ [1,2],↵ [1,3],↵ [1,4],↵]思路:当前数作为其中一个,剩下的就从后面来获取<?phpfunction combine($start, $end , $num) { $arrR...原创 2019-10-13 11:34:38 · 465 阅读 · 0 评论 -
《leetCode-php》求不重复数组的子集
现在有一个没有重复元素的整数集合S,求S的所有子集思路:通过二进制来确定有哪些子集<?phpfunction subsets($arr) { $num = count($arr); $end = pow(2, $num); $arrRet = array(); for ($i = 0; $i < $end; $i ++) { ...原创 2019-10-13 11:02:04 · 207 阅读 · 0 评论 -
《leetCode-php》查找字符串
给出一个二维字符数组和一个单词,判断单词是否在数组中出现,单词由相邻单元格的字母连接而成,相邻单元指的是上下左右相邻。同一单元格的字母不能多次使用。例如:给出的字符数组=[↵ ["ABCE"],↵ ["SFCS"],↵ ["ADEE"]↵]单词="ABCCED", -> 返回 true,单词="SEE", ->返回 true,单词="ABCB...原创 2019-10-13 10:27:19 · 341 阅读 · 0 评论 -
《leetCode-php》删除数组中的重复元素
给定一个有序数组,你需要原地删除其中的重复内容,使每个元素只出现一次,并返回新的长度。不要另外定义一个数组,您必须通过用 O(1) 额外内存原地修改输入的数组来做到这一点。<?phpfunction removeDuplicates($arr) { $num = count($arr); for ($i = 0; $i < $num; $i ++) { ...原创 2019-10-13 09:41:12 · 143 阅读 · 0 评论 -
《leetCode-php》查找存在重复的旋转有序数组中的值
继续思考题目"Search in Rotated Sorted Array": 是基于上一个题目的如果数组种允许有重复元素怎么办?会影响时间复杂度吗?是怎样影响时间复杂度的,为什么?编写一个函数判断给定目标值是否在数组中。<?php/* * 肯定是影响找到位置的时间复杂度,因为如果mid=target的话,还是需要判断有没有别的重复的,就变成了遍历,O(n)的复杂度 ...原创 2019-10-12 23:45:45 · 147 阅读 · 0 评论 -
《leetCode-php》查找旋转之后的有序数组中的点
假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组 [0,1,2,3,4,5] 可能变为[1,2,3,4,5,0])。搜索一个给定的目标值,如果数组中存在这个目标值,则返回它的索引,否则返回 -1 。你可以假设数组中不存在重复的元素。你的算法时间复杂度必须是 O(log n) 级别。思路:可以采用二分查找来实现这个复杂度<?php/** * @...原创 2019-10-12 22:47:45 · 80 阅读 · 0 评论 -
《leetCode-php》去掉有序链表中重复的值
给出一个排好序的链表,删除链表中的所有重复出现的元素,只保留原链表中只出现一次的元素。例如:给出的链表为1->2->3->3->4->4->5, 返回1->2->5.给出的链表为1->1->1->2->3,返回2->3.思路:这个主要是头结点怎么处理<?phpclass Node {...原创 2019-10-12 09:17:37 · 187 阅读 · 0 评论 -
《leetCode-php》删除有序链表中的重复元素为1次
删除给出链表中的重复元素,使链表中的所有元素都只出现一次例如:给出的链表为1->1->2,返回1->2.给出的链表为1->1->2->3->3,返回1->2->3.<?phpclass Node { public $next = null; public $val; public funct...原创 2019-10-11 23:27:51 · 89 阅读 · 0 评论 -
《leetCode-php》二叉树非递归中序遍历
给出一棵二叉树,返回这棵树的中序遍历。备注:递归的解法太没有新意了,你能用迭代的方法来解这道题吗?<?phpclass Node { public $left = null; public $right = null; public $val; public function __construct($val) { $this->...原创 2019-10-04 11:36:55 · 126 阅读 · 0 评论 -
《leetCode-php》求由n个数可以组成所有的二叉搜索树
给定一个值n,请生成所有的存储值1...n.的二叉搜索树(BST)的结构例如:给定n=3,你的程序应该给出下面五种不同的二叉搜索树(BST)<?phpclass Node { public $left = null; public $right = null; public $val; public function __construct($va...原创 2019-10-04 11:16:41 · 282 阅读 · 0 评论 -
《leetCode-php》求由n个数可以组成多少个二叉搜索树
给定一个值n,能构建出多少不同的值包含1...n的二叉搜索树(BST)?例如:给定 n= 3, 有五种不同的二叉搜索树(BST)<?phpclass Node { public $left = null; public $right = null; public $val; public function __construct($val) { ...原创 2019-10-04 10:54:32 · 897 阅读 · 0 评论 -
《leetCode-php》给一个数字字符串解密为字母字符串
一条仅包含字母‘A’-‘Z’的消息用下列的方式加密成数字'A' -> 1↵'B' -> 2↵...↵'Z' -> 26现在给出加密成数字的密文,请判断有多少种解密的方法。例如:给出的密文为“12”,可以解密为"AB"(1 2) 或者"L"(12).所以密文"12"的解密方法是2种.思路:动态规划最大的字母为26,所以最多用两位来构造一个字母。D[i]为第i...原创 2019-09-22 13:20:07 · 480 阅读 · 0 评论 -
《leetCode-php》给出一个可能包含重复元素的整数集合S,返回该整数集合的所有子集
给出一个可能包含重复元素的整数集合S,返回该整数集合的所有子集。注意:你给出的子集中的元素要按非递增的顺序排列 给出的解集中不能包含重复的子集例如:如果S=[1,2,2], 给出的解集应该是:[↵ [2],↵ [1],↵ [1,2,2],↵ [2,2],↵ [1,2],↵ []↵]思路:如果没有重复的,可以采用二进制的方式遍历获得所有的子集。有重复的就需要去掉重复的集合,...原创 2019-09-22 11:19:03 · 635 阅读 · 1 评论 -
《leetCode-php》给出三个字符串s1, s2, s3,判断s3是否可以由s1和s2交织而成
给出三个字符串s1,s2,s3,判断s3是否可以由s1和s2交织而成。例如:给定s1="aabcc",s2="dbbca",如果s3="aadbbcbcac", 返回true;如果s3="aadbbbaccc", 返回false思路:动态规划当有两个来源的时候,构造二维图来判断第i+j个是否可以由s1和s2组成。d[i][j]存的是s3中到i+j的位置是否可以由s1的j个...原创 2019-09-22 10:28:19 · 759 阅读 · 0 评论 -
《leetcode-php》数组中找唯一出现一次的数字,其他出现三次
Given an array of integers, every element appears three times except for one. Find that single one.Note:Your algorithm should have a linear runtime complexity. Could you implement it without usin...原创 2019-02-28 09:26:09 · 469 阅读 · 0 评论 -
《leetCode-php》数字字符串转ip地址
现在有一个只包含数字的字符串,将该字符串重新存储成IP地址的形式,返回所有可能的情况。例如:给出的字符串为"25525511135", 返回["255.255.11.135", "255.255.111.35"]. (顺序没有关系)<?phpfunction restoreIpAddresses($s) { $length = strlen($s); if ($le...原创 2019-10-04 12:04:56 · 368 阅读 · 0 评论