![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
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==cfunc detectCycle(head ...原创 2020-09-04 15:28:42 · 71 阅读 · 0 评论 -
leetcode 组合总和
递归:function combinationSum ($candidates, $target) { sort($candidates); foreach ($candidates as $i => $candidate) { // 值小于目标,则递归 if ($candidate < $target) { $this-&g...原创 2020-05-28 16:51:34 · 118 阅读 · 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 · 108 阅读 · 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 · 81 阅读 · 0 评论 -
leetcode 下一个排列
示例:73642的下一个排列是74236从右往左遍历,比较相邻两个数据 右侧数据是否比左侧大,找到:"36":6比3大 继续从该节点“3”的右侧数据中 找出比3大 最小的那个数据,找到4 3和4交换位置;74632 对交换后4右侧的数据进行排序:74236class Solution { /** * @param Integer[] $nums * ...原创 2020-03-24 16:11:53 · 76 阅读 · 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 · 83 阅读 · 0 评论 -
leetco 有效的括号
实现方案:根据“栈”的原理,一次遍历所有“左括号”入栈;遇到对应的“右括号”则出栈 function isValid ($s) { // 奇数个 if (strlen($s) % 2 != 0) { return false; } $sMap = [ '{'...原创 2020-02-12 16:22:05 · 253 阅读 · 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 · 194 阅读 · 0 评论 -
php 最长回文子串
最长回文子串由于case包含奇偶性,所以分两种情况讨论思路:找到以字符"x"为中心的最长回文子串从x的下标开始遍历,拆分为偶数对称情况和奇数对称情况 终止条件有2: 对称位置的字符不相同 循环右侧下标超出字符长度 结果:1364 ms14.9 MB主要难点是:计算下标代码:class Solution{ /** * @param Str...原创 2019-11-15 11:49:05 · 298 阅读 · 0 评论 -
无重复字符的最长子串
无重复字符的最长子串思路一:找到以每一个字符为结尾的所有最长不重复子字符串从左到右,从第一个字符串开始,循环遍历判断下一个字符是否存在于前面的字符串里 如果不存在则增加当前字符串的长度,继续 如果存在,则说明当前字符"a"有重复,则定位到字符串中重复的字符"a"的位置,从字符串中"a"的位置的下一项开始到下一个字符"a"的位置形成以第二个a为结尾的最长不重复子串 从字符串中"a...原创 2019-11-15 11:09:32 · 224 阅读 · 0 评论