Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
68 commits
Select commit Hold shift + click to select a range
6d82627
添加(0941.有效的山脉数组.md):增加typescript版本
xiaofei-2020 May 24, 2022
211f9f2
添加(0344.反转字符串.md):PHP版本
fmtvar May 24, 2022
ded66cf
Update 0052.N皇后II.md
wang2jun May 24, 2022
3665c05
增加(剑指Offer05.替换空格.md):php版本
fmtvar May 24, 2022
a69ee03
添加 0404.左叶子之和.md Scala版本
wzqwtt May 24, 2022
591cf19
添加(0151.翻转字符串里的单词.md):PHP版本
fmtvar May 24, 2022
17a2ea3
添加 0513.找树左下角的值.md Scala版本
wzqwtt May 24, 2022
4405be2
增加(0206.翻转链表.md):php版本
fmtvar May 24, 2022
5e0a01c
增加(0019.删除链表的倒数第N个节点.md):PHP版本
fmtvar May 24, 2022
1a01fe3
添加 0112.路径总和.md Scala版本
wzqwtt May 24, 2022
e28c733
添加(1207.独一无二的出现次数.md):增加typescript版本
xiaofei-2020 May 25, 2022
0fe499a
添加 0106.从中序与后序遍历序列构造二叉树.md Scala版本
wzqwtt May 25, 2022
2137778
添加(0015.三数之和.md):增加javascript版本nsum的通用解法
Damon0820 May 25, 2022
c70440a
添加(0283.移动零.md):增加typescript版本
xiaofei-2020 May 26, 2022
36a1d71
Update 0541.反转字符串II.md
harrytsz May 26, 2022
8d3e5b4
添加(0232.用栈实现队列.md):PHP版本
fmtvar May 26, 2022
5baecc0
添加(0225.用队列实现栈.md):PHP版本
fmtvar May 26, 2022
513ec54
添加(0189.旋转数组.md):增加typescript版本
xiaofei-2020 May 27, 2022
156d8fd
增加(0020.有效的括号.md):PHP版本
fmtvar May 27, 2022
edbff2f
添加(1047.删除字符串中的所有相邻重复项.md):php版本
fmtvar May 27, 2022
821ca65
添加 0654.最大二叉树.md Scala版本
wzqwtt May 27, 2022
de34170
添加 0617.合并二叉树.md Scala版本
wzqwtt May 27, 2022
9412e2e
添加 0700.二叉搜索树中的搜索.md Scala版本
wzqwtt May 27, 2022
d4a4eda
添加 0098.验证二叉搜索树.md Scala版本
wzqwtt May 27, 2022
654bf61
Merge branch 'youngyangyang04:master' into master
Damon0820 May 27, 2022
4e95d66
添加(0509.斐波那契数.md):增加javascript版本优化空间复杂度到O(1)解法
Damon0820 May 27, 2022
9929093
添加(0509.斐波那契数.md):增加javascript版本优化空间复杂度到O(1)解法
Damon0820 May 27, 2022
a9f8302
添加(0724.寻找数组的中心索引.md):增加typescript版本
xiaofei-2020 May 28, 2022
6f46d91
添加 0530.二叉搜索树的最小绝对差.md Scala版本
wzqwtt May 28, 2022
779adf7
添加 0501.二叉搜索树中的众数.md Scala版本
wzqwtt May 28, 2022
fdd646e
Update
youngyangyang04 Jun 17, 2022
0f1b6cd
Merge pull request #1392 from xiaofei-2020/extra02
youngyangyang04 Jun 24, 2022
beacaeb
Merge branch 'master' into 0344
youngyangyang04 Jun 24, 2022
f85b5a2
Merge pull request #1393 from fmtvar/0344
youngyangyang04 Jun 24, 2022
3f538d4
Merge pull request #1394 from wang2jun/master
youngyangyang04 Jun 25, 2022
3f0bb3c
Merge branch 'master' into offer-05
youngyangyang04 Jun 25, 2022
fe4737c
Merge pull request #1395 from fmtvar/offer-05
youngyangyang04 Jun 25, 2022
73e48c1
Merge pull request #1396 from fmtvar/0151
youngyangyang04 Jun 25, 2022
ce89a3e
Merge pull request #1397 from wzqwtt/tree09
youngyangyang04 Jun 26, 2022
2cf8ee5
Merge branch 'master' into 0206
youngyangyang04 Jun 26, 2022
e8d1a1a
Merge pull request #1398 from fmtvar/0206
youngyangyang04 Jun 26, 2022
cb2d0e8
Merge branch 'master' into 0019
youngyangyang04 Jun 26, 2022
866b9e8
Merge pull request #1399 from fmtvar/0019
youngyangyang04 Jun 27, 2022
4065ced
Merge branch 'master' into tree10
youngyangyang04 Jun 27, 2022
908f347
Merge pull request #1400 from wzqwtt/tree10
youngyangyang04 Jun 27, 2022
5cdd184
Merge pull request #1401 from xiaofei-2020/extra03
youngyangyang04 Jun 27, 2022
5d92348
Merge pull request #1402 from wzqwtt/tree11
youngyangyang04 Jun 27, 2022
812aeed
Update
youngyangyang04 Jun 27, 2022
1b16a93
更新力扣链接
youngyangyang04 Jun 27, 2022
1ca56dd
Merge branch 'master' of github.com:youngyangyang04/leetcode-master
youngyangyang04 Jun 27, 2022
c6a4ea6
Merge pull request #1403 from Damon0820/master
youngyangyang04 Jun 28, 2022
d69eab3
Merge pull request #1404 from xiaofei-2020/extra04
youngyangyang04 Jun 28, 2022
6f0e93c
Merge branch 'master' into 0232
youngyangyang04 Jun 28, 2022
634c051
Merge pull request #1405 from fmtvar/0232
youngyangyang04 Jun 28, 2022
05fd280
Merge pull request #1406 from harrytsz/master
youngyangyang04 Jun 30, 2022
1b9fdb7
Merge branch 'master' into 0225
youngyangyang04 Jun 30, 2022
f1ac289
Merge pull request #1407 from fmtvar/0225
youngyangyang04 Jun 30, 2022
f62a20e
Merge pull request #1408 from xiaofei-2020/extra05
youngyangyang04 Jun 30, 2022
81e3900
Merge branch 'master' into 0020
youngyangyang04 Jun 30, 2022
0b32570
Merge pull request #1409 from fmtvar/0020
youngyangyang04 Jun 30, 2022
6274be6
Merge branch 'master' into 1047
youngyangyang04 Jul 1, 2022
31d7d39
Merge pull request #1410 from fmtvar/1047
youngyangyang04 Jul 1, 2022
b33f3d3
Merge pull request #1411 from wzqwtt/tree12
youngyangyang04 Jul 1, 2022
156883e
Merge pull request #1412 from wzqwtt/tree13
youngyangyang04 Jul 1, 2022
eedd129
Merge pull request #1413 from Damon0820/question0509
youngyangyang04 Jul 2, 2022
cf8582d
Merge pull request #1414 from xiaofei-2020/extra06
youngyangyang04 Jul 2, 2022
dc8fcd5
Merge branch 'master' into tree14
youngyangyang04 Jul 2, 2022
23cc663
Merge pull request #1415 from wzqwtt/tree14
youngyangyang04 Jul 2, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion problems/0001.两数之和.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

## 1. 两数之和

[力扣题目链接](https://leetcode-cn.com/problems/two-sum/)
[力扣题目链接](https://leetcode.cn/problems/two-sum/)

给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。

Expand Down
2 changes: 1 addition & 1 deletion problems/0005.最长回文子串.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

# 5.最长回文子串

[力扣题目链接](https://leetcode-cn.com/problems/longest-palindromic-substring/)
[力扣题目链接](https://leetcode.cn/problems/longest-palindromic-substring/)

给你一个字符串 s,找到 s 中最长的回文子串。

Expand Down
72 changes: 71 additions & 1 deletion problems/0015.三数之和.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@

# 第15题. 三数之和

[力扣题目链接](https://leetcode-cn.com/problems/3sum/)
[力扣题目链接](https://leetcode.cn/problems/3sum/)

给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有满足条件且不重复的三元组。

Expand Down Expand Up @@ -345,6 +345,76 @@ var threeSum = function(nums) {
return res
};
```

解法二:nSum通用解法。递归

```js
/**
* nsum通用解法,支持2sum,3sum,4sum...等等
* 时间复杂度分析:
* 1. n = 2时,时间复杂度O(NlogN),排序所消耗的时间。、
* 2. n > 2时,时间复杂度为O(N^n-1),即N的n-1次方,至少是2次方,此时可省略排序所消耗的时间。举例:3sum为O(n^2),4sum为O(n^3)
* @param {number[]} nums
* @return {number[][]}
*/
var threeSum = function (nums) {
// nsum通用解法核心方法
function nSumTarget(nums, n, start, target) {
// 前提:nums要先排序好
let res = [];
if (n === 2) {
res = towSumTarget(nums, start, target);
} else {
for (let i = start; i < nums.length; i++) {
// 递归求(n - 1)sum
let subRes = nSumTarget(
nums,
n - 1,
i + 1,
target - nums[i]
);
for (let j = 0; j < subRes.length; j++) {
res.push([nums[i], ...subRes[j]]);
}
// 跳过相同元素
while (nums[i] === nums[i + 1]) i++;
}
}
return res;
}

function towSumTarget(nums, start, target) {
// 前提:nums要先排序好
let res = [];
let len = nums.length;
let left = start;
let right = len - 1;
while (left < right) {
let sum = nums[left] + nums[right];
if (sum < target) {
while (nums[left] === nums[left + 1]) left++;
left++;
} else if (sum > target) {
while (nums[right] === nums[right - 1]) right--;
right--;
} else {
// 相等
res.push([nums[left], nums[right]]);
// 跳过相同元素
while (nums[left] === nums[left + 1]) left++;
while (nums[right] === nums[right - 1]) right--;
left++;
right--;
}
}
return res;
}
nums.sort((a, b) => a - b);
// n = 3,此时求3sum之和
return nSumTarget(nums, 3, 0, 0);
};
```

TypeScript:

```typescript
Expand Down
2 changes: 1 addition & 1 deletion problems/0017.电话号码的字母组合.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

# 17.电话号码的字母组合

[力扣题目链接](https://leetcode-cn.com/problems/letter-combinations-of-a-phone-number/)
[力扣题目链接](https://leetcode.cn/problems/letter-combinations-of-a-phone-number/)

给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。

Expand Down
2 changes: 1 addition & 1 deletion problems/0018.四数之和.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@

# 第18题. 四数之和

[力扣题目链接](https://leetcode-cn.com/problems/4sum/)
[力扣题目链接](https://leetcode.cn/problems/4sum/)

题意:给定一个包含 n 个整数的数组 nums 和一个目标值 target,判断 nums 中是否存在四个元素 a,b,c 和 d ,使得 a + b + c + d 的值与 target 相等?找出所有满足条件且不重复的四元组。

Expand Down
26 changes: 25 additions & 1 deletion problems/0019.删除链表的倒数第N个节点.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@

## 19.删除链表的倒数第N个节点

[力扣题目链接](https://leetcode-cn.com/problems/remove-nth-node-from-end-of-list/)
[力扣题目链接](https://leetcode.cn/problems/remove-nth-node-from-end-of-list/)

给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。

Expand Down Expand Up @@ -289,6 +289,30 @@ func removeNthFromEnd(_ head: ListNode?, _ n: Int) -> ListNode? {
return dummyHead.next
}
```


PHP:
```php
function removeNthFromEnd($head, $n) {
// 设置虚拟头节点
$dummyHead = new ListNode();
$dummyHead->next = $head;

$slow = $fast = $dummyHead;
while($n-- && $fast != null){
$fast = $fast->next;
}
// fast 再走一步,让 slow 指向删除节点的上一个节点
$fast = $fast->next;
while ($fast != NULL) {
$fast = $fast->next;
$slow = $slow->next;
}
$slow->next = $slow->next->next;
return $dummyHead->next;
}
```

Scala:
```scala
object Solution {
Expand Down
34 changes: 33 additions & 1 deletion problems/0020.有效的括号.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@

# 20. 有效的括号

[力扣题目链接](https://leetcode-cn.com/problems/valid-parentheses/)
[力扣题目链接](https://leetcode.cn/problems/valid-parentheses/)

给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。

Expand Down Expand Up @@ -400,6 +400,37 @@ bool isValid(char * s){
return !stackTop;
}
```


PHP:
```php
// https://www.php.net/manual/zh/class.splstack.php
class Solution
{
function isValid($s){
$stack = new SplStack();
for ($i = 0; $i < strlen($s); $i++) {
if ($s[$i] == "(") {
$stack->push(')');
} else if ($s[$i] == "{") {
$stack->push('}');
} else if ($s[$i] == "[") {
$stack->push(']');
// 2、遍历匹配过程中,发现栈内没有要匹配的字符 return false
// 3、遍历匹配过程中,栈已为空,没有匹配的字符了,说明右括号没有找到对应的左括号 return false
} else if ($stack->isEmpty() || $stack->top() != $s[$i]) {
return false;
} else {//$stack->top() == $s[$i]
$stack->pop();
}
}
// 1、遍历完,但是栈不为空,说明有相应的括号没有被匹配,return false
return $stack->isEmpty();
}
}
```


Scala:
```scala
object Solution {
Expand All @@ -422,5 +453,6 @@ object Solution {
}
}
```

-----------------------
<div align="center"><img src=https://code-thinking.cdn.bcebos.com/pics/01二维码一.jpg width=500> </img></div>
2 changes: 1 addition & 1 deletion problems/0024.两两交换链表中的节点.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

## 24. 两两交换链表中的节点

[力扣题目链接](https://leetcode-cn.com/problems/swap-nodes-in-pairs/)
[力扣题目链接](https://leetcode.cn/problems/swap-nodes-in-pairs/)

给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。

Expand Down
2 changes: 1 addition & 1 deletion problems/0027.移除元素.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

## 27. 移除元素

[力扣题目链接](https://leetcode-cn.com/problems/remove-element/)
[力扣题目链接](https://leetcode.cn/problems/remove-element/)

给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。

Expand Down
2 changes: 1 addition & 1 deletion problems/0028.实现strStr.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@

# 28. 实现 strStr()

[力扣题目链接](https://leetcode-cn.com/problems/implement-strstr/)
[力扣题目链接](https://leetcode.cn/problems/implement-strstr/)

实现 strStr() 函数。

Expand Down
2 changes: 1 addition & 1 deletion problems/0031.下一个排列.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@

# 31.下一个排列

[力扣题目链接](https://leetcode-cn.com/problems/next-permutation/)
[力扣题目链接](https://leetcode.cn/problems/next-permutation/)

实现获取 下一个排列 的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列。

Expand Down
2 changes: 1 addition & 1 deletion problems/0035.搜索插入位置.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@

# 35.搜索插入位置

[力扣题目链接](https://leetcode-cn.com/problems/search-insert-position/)
[力扣题目链接](https://leetcode.cn/problems/search-insert-position/)

给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。

Expand Down
2 changes: 1 addition & 1 deletion problems/0037.解数独.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@

# 37. 解数独

[力扣题目链接](https://leetcode-cn.com/problems/sudoku-solver/)
[力扣题目链接](https://leetcode.cn/problems/sudoku-solver/)

编写一个程序,通过填充空格来解决数独问题。

Expand Down
2 changes: 1 addition & 1 deletion problems/0039.组合总和.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

# 39. 组合总和

[力扣题目链接](https://leetcode-cn.com/problems/combination-sum/)
[力扣题目链接](https://leetcode.cn/problems/combination-sum/)

给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。

Expand Down
2 changes: 1 addition & 1 deletion problems/0040.组合总和II.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@

# 40.组合总和II

[力扣题目链接](https://leetcode-cn.com/problems/combination-sum-ii/)
[力扣题目链接](https://leetcode.cn/problems/combination-sum-ii/)

给定一个数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。

Expand Down
2 changes: 1 addition & 1 deletion problems/0042.接雨水.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@

# 42. 接雨水

[力扣题目链接](https://leetcode-cn.com/problems/trapping-rain-water/)
[力扣题目链接](https://leetcode.cn/problems/trapping-rain-water/)

给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。

Expand Down
2 changes: 1 addition & 1 deletion problems/0045.跳跃游戏II.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@

# 45.跳跃游戏II

[力扣题目链接](https://leetcode-cn.com/problems/jump-game-ii/)
[力扣题目链接](https://leetcode.cn/problems/jump-game-ii/)

给定一个非负整数数组,你最初位于数组的第一个位置。

Expand Down
2 changes: 1 addition & 1 deletion problems/0046.全排列.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

# 46.全排列

[力扣题目链接](https://leetcode-cn.com/problems/permutations/)
[力扣题目链接](https://leetcode.cn/problems/permutations/)

给定一个 没有重复 数字的序列,返回其所有可能的全排列。

Expand Down
2 changes: 1 addition & 1 deletion problems/0047.全排列II.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

## 47.全排列 II

[力扣题目链接](https://leetcode-cn.com/problems/permutations-ii/)
[力扣题目链接](https://leetcode.cn/problems/permutations-ii/)

给定一个可包含重复数字的序列 nums ,按任意顺序 返回所有不重复的全排列。

Expand Down
2 changes: 1 addition & 1 deletion problems/0051.N皇后.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

# 第51题. N皇后

[力扣题目链接](https://leetcode-cn.com/problems/n-queens/)
[力扣题目链接](https://leetcode.cn/problems/n-queens/)

n 皇后问题 研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。

Expand Down
4 changes: 2 additions & 2 deletions problems/0052.N皇后II.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

# 52. N皇后II

题目链接:https://leetcode-cn.com/problems/n-queens-ii/
题目链接:https://leetcode.cn/problems/n-queens-ii/

n 皇后问题研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。

Expand Down Expand Up @@ -44,7 +44,7 @@ n 皇后问题研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并
# 思路


想看:[51.N皇后](https://mp.weixin.qq.com/s/lU_QwCMj6g60nh8m98GAWg) ,基本没有区别
详看:[51.N皇后](https://mp.weixin.qq.com/s/lU_QwCMj6g60nh8m98GAWg) ,基本没有区别

# C++代码

Expand Down
2 changes: 1 addition & 1 deletion problems/0053.最大子序和.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

# 53. 最大子序和

[力扣题目链接](https://leetcode-cn.com/problems/maximum-subarray/)
[力扣题目链接](https://leetcode.cn/problems/maximum-subarray/)

给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。

Expand Down
2 changes: 1 addition & 1 deletion problems/0053.最大子序和(动态规划).md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

## 53. 最大子序和

[力扣题目链接](https://leetcode-cn.com/problems/maximum-subarray/)
[力扣题目链接](https://leetcode.cn/problems/maximum-subarray/)

给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。

Expand Down
6 changes: 3 additions & 3 deletions problems/0054.螺旋矩阵.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

## 54.螺旋矩阵

[力扣题目链接](https://leetcode-cn.com/problems/spiral-matrix/)
[力扣题目链接](https://leetcode.cn/problems/spiral-matrix/)

给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。

Expand Down Expand Up @@ -128,8 +128,8 @@ public:

## 类似题目

* [59.螺旋矩阵II](https://leetcode-cn.com/problems/spiral-matrix-ii/)
* [剑指Offer 29.顺时针打印矩阵](https://leetcode-cn.com/problems/shun-shi-zhen-da-yin-ju-zhen-lcof/)
* [59.螺旋矩阵II](https://leetcode.cn/problems/spiral-matrix-ii/)
* [剑指Offer 29.顺时针打印矩阵](https://leetcode.cn/problems/shun-shi-zhen-da-yin-ju-zhen-lcof/)

## 其他语言版本
Python:
Expand Down
2 changes: 1 addition & 1 deletion problems/0055.跳跃游戏.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

# 55. 跳跃游戏

[力扣题目链接](https://leetcode-cn.com/problems/jump-game/)
[力扣题目链接](https://leetcode.cn/problems/jump-game/)

给定一个非负整数数组,你最初位于数组的第一个位置。

Expand Down
Loading