
leetCode
曾经沧海海
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
环形链表 II
[a+ m(b+c) +b] x2 = a+ n(b+c) +b => a+ b = (n- 2m)(b+c) => a =(n- 2m)(b+c) -b && c =(b+c) -b => a = c + (n-2m-1)(b+c) // 即 a 与 c 相差环长的整数倍 => 则一个节点A从头出发 一个节点B从相遇点出发;A B 相遇的地方就是成环点 另:一般当n=2 m=0 时 a==c func detectCycle(head ...原创 2020-09-04 15:28:42 · 94 阅读 · 0 评论 -
leetcode 组合总和
递归: function combinationSum ($candidates, $target) { sort($candidates); foreach ($candidates as $i => $candidate) { // 值小于目标,则递归 if ($candidate < $target) { $this-&g...原创 2020-05-28 16:51:34 · 153 阅读 · 0 评论 -
有效的数独
function isValidSudoku ($board) { for ($i = 0; $i < 9; $i++) { for ($j = 0; $j < 9; $j++) { if ($board[$i][$j] == '.') { continue; } for ($k = 8; $k > ...原创 2020-05-13 21:35:14 · 130 阅读 · 0 评论 -
leetCode 搜索旋转排序数组
class Solution { /** * @param Integer[] $nums * @param Integer $target * @return Integer */ function search ($nums, $target) { return $this->childSearch...原创 2020-04-01 11:00:58 · 111 阅读 · 0 评论 -
leetcode 下一个排列
示例:73642的下一个排列是74236 从右往左遍历,比较相邻两个数据 右侧数据是否比左侧大,找到:"36":6比3大 继续从该节点“3”的右侧数据中 找出比3大 最小的那个数据,找到4 3和4交换位置;74632 对交换后4右侧的数据进行排序:74236 class Solution { /** * @param Integer[] $nums * ...原创 2020-03-24 16:11:53 · 110 阅读 · 0 评论 -
合并两个有序链表
/** * Definition for a singly-linked list. * class ListNode { * public $val = 0; * public $next = null; * function __construct($val) { $this->val = $val; } * } */ class So...原创 2020-02-18 18:16:43 · 106 阅读 · 0 评论 -
leetco 有效的括号
实现方案: 根据“栈”的原理,一次遍历所有“左括号”入栈;遇到对应的“右括号”则出栈 function isValid ($s) { // 奇数个 if (strlen($s) % 2 != 0) { return false; } $sMap = [ '{'...原创 2020-02-12 16:22:05 · 296 阅读 · 0 评论 -
leetcode Z 字形变换 php
Z 字形变换 php没啥技术含量,遍历赋值就行 思路:分为竖线和斜线两种情况 php不需要关注数组大小,但还是算了一下 行数:$numRows 以竖线为分割每个块的值个数是:$numRows+$numRows-2 字符串长度整除$numRows+$numRows-2,再根据余数计算 结果:28 ms15.8 MB 不是很棒 代码: class Solution { ...原创 2019-11-15 11:58:58 · 244 阅读 · 0 评论 -
php 最长回文子串
最长回文子串 由于case包含奇偶性,所以分两种情况讨论 思路:找到以字符"x"为中心的最长回文子串 从x的下标开始遍历,拆分为偶数对称情况和奇数对称情况 终止条件有2: 对称位置的字符不相同 循环右侧下标超出字符长度 结果:1364 ms14.9 MB 主要难点是:计算下标 代码: class Solution { /** * @param Str...原创 2019-11-15 11:49:05 · 329 阅读 · 0 评论 -
无重复字符的最长子串
无重复字符的最长子串 思路一:找到以每一个字符为结尾的所有最长不重复子字符串 从左到右,从第一个字符串开始,循环遍历判断下一个字符是否存在于前面的字符串里 如果不存在则增加当前字符串的长度,继续 如果存在,则说明当前字符"a"有重复,则定位到字符串中重复的字符"a"的位置,从字符串中"a"的位置的下一项开始到下一个字符"a"的位置形成以第二个a为结尾的最长不重复子串 从字符串中"a...原创 2019-11-15 11:09:32 · 316 阅读 · 0 评论