update content

This commit is contained in:
labuladong
2024-04-28 21:17:31 +08:00
parent 4f44711bb5
commit 718175151f
73 changed files with 584 additions and 78 deletions

View File

@ -9,7 +9,7 @@
![](https://labuladong.github.io/pictures/souyisou1.png)
**通知:算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**
**通知:[新版网站会员](https://labuladong.online/algo/intro/site-vip/) 限时优惠;算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**

View File

@ -9,7 +9,7 @@
![](https://labuladong.github.io/pictures/souyisou1.png)
**通知:算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**
**通知:[新版网站会员](https://labuladong.online/algo/intro/site-vip/) 限时优惠;算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**

View File

@ -9,7 +9,7 @@
![](https://labuladong.github.io/pictures/souyisou1.png)
**通知:算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**
**通知:[新版网站会员](https://labuladong.online/algo/intro/site-vip/) 限时优惠;算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**

View File

@ -9,7 +9,7 @@
![](https://labuladong.github.io/pictures/souyisou1.png)
**通知:算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**
**通知:[新版网站会员](https://labuladong.online/algo/intro/site-vip/) 限时优惠;算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**

View File

@ -9,7 +9,7 @@
![](https://labuladong.github.io/pictures/souyisou1.png)
**通知:算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**
**通知:[新版网站会员](https://labuladong.online/algo/intro/site-vip/) 限时优惠;算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**

View File

@ -9,7 +9,7 @@
![](https://labuladong.github.io/pictures/souyisou1.png)
**通知:算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**
**通知:[新版网站会员](https://labuladong.online/algo/intro/site-vip/) 限时优惠;算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**

View File

@ -9,7 +9,7 @@
![](https://labuladong.github.io/pictures/souyisou1.png)
**通知:算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**
**通知:[新版网站会员](https://labuladong.online/algo/intro/site-vip/) 限时优惠;算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**

View File

@ -9,7 +9,7 @@
![](https://labuladong.github.io/pictures/souyisou1.png)
**通知:算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**
**通知:[新版网站会员](https://labuladong.online/algo/intro/site-vip/) 限时优惠;算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**

View File

@ -9,7 +9,7 @@
![](https://labuladong.github.io/pictures/souyisou1.png)
**通知:算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**
**通知:[新版网站会员](https://labuladong.online/algo/intro/site-vip/) 限时优惠;算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**

View File

@ -9,7 +9,7 @@
![](https://labuladong.github.io/pictures/souyisou1.png)
**通知:算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**
**通知:[新版网站会员](https://labuladong.online/algo/intro/site-vip/) 限时优惠;算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**

View File

@ -9,7 +9,7 @@
![](https://labuladong.github.io/pictures/souyisou1.png)
**通知:算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**
**通知:[新版网站会员](https://labuladong.online/algo/intro/site-vip/) 限时优惠;算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**

View File

@ -9,7 +9,7 @@
![](https://labuladong.github.io/pictures/souyisou1.png)
**通知:算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**
**通知:[新版网站会员](https://labuladong.online/algo/intro/site-vip/) 限时优惠;算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**

View File

@ -9,7 +9,7 @@
![](https://labuladong.github.io/pictures/souyisou1.png)
**通知:算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**
**通知:[新版网站会员](https://labuladong.online/algo/intro/site-vip/) 限时优惠;算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**

View File

@ -9,7 +9,7 @@
![](https://labuladong.github.io/pictures/souyisou1.png)
**通知:算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**
**通知:[新版网站会员](https://labuladong.online/algo/intro/site-vip/) 限时优惠;算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**

View File

@ -9,7 +9,7 @@
![](https://labuladong.github.io/pictures/souyisou1.png)
**通知:算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**
**通知:[新版网站会员](https://labuladong.online/algo/intro/site-vip/) 限时优惠;算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**

View File

@ -9,7 +9,7 @@
![](https://labuladong.github.io/pictures/souyisou1.png)
**通知:算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**
**通知:[新版网站会员](https://labuladong.online/algo/intro/site-vip/) 限时优惠;算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**

View File

@ -9,7 +9,7 @@
![](https://labuladong.github.io/pictures/souyisou1.png)
**通知:算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**
**通知:[新版网站会员](https://labuladong.online/algo/intro/site-vip/) 限时优惠;算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**

View File

@ -9,7 +9,7 @@
![](https://labuladong.github.io/pictures/souyisou1.png)
**通知:算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**
**通知:[新版网站会员](https://labuladong.online/algo/intro/site-vip/) 限时优惠;算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**

View File

@ -7179,8 +7179,10 @@ class Solution {
// 穷举前两个数字
int n = num.length();
for (int i = 1; i <= n; i++) {
// 先穷举第一个数字
String first = num.substring(0, i);
for (int j = i + 1; j <= n; j++) {
String first = num.substring(0, i);
// 再穷举第二个数字
String second = num.substring(i, j);
if (isValid(num, first, second)) {
return true;
@ -16406,6 +16408,97 @@ class Solution:
https://leetcode.cn/problems/count-complete-tree-nodes 的多语言解法👆
https://leetcode.cn/problems/count-numbers-with-unique-digits 的多语言解法👇
```cpp
// by chatGPT (cpp)
class Solution {
public:
int countNumbersWithUniqueDigits(int n) {
if (n == 0) return 1;
if (n == 1) return 10;
int res = 9;
// 计算 n 位数的阶乘,共有几种不同数字的排列组合
for (int i = 1; i < n; i++) {
res *= (10 - i);
}
// 最后要加上 n - 1 位数的排列组合
return res + countNumbersWithUniqueDigits(n - 1);
}
};
```
```go
// by chatGPT (go)
// Solution function
func countNumbersWithUniqueDigits(n int) int {
if n == 0 {
return 1
}
if n == 1 {
return 10
}
res := 9
// 计算 n 位数的阶乘,共有几种不同数字的排列组合
for i := 1; i < n; i++ {
res *= (10 - i)
}
// 最后要加上 n - 1 位数的排列组合
return res + countNumbersWithUniqueDigits(n - 1)
}
```
```java
// by labuladong (java)
class Solution {
public int countNumbersWithUniqueDigits(int n) {
if (n == 0) return 1;
if (n == 1) return 10;
int res = 9;
// 计算 n 位数的阶乘,共有几种不同数字的排列组合
for (int i = 1; i < n; i++) {
res *= (10 - i);
}
// 最后要加上 n - 1 位数的排列组合
return res + countNumbersWithUniqueDigits(n - 1);
}
}
```
```javascript
// by chatGPT (javascript)
var countNumbersWithUniqueDigits = function(n) {
if (n == 0) return 1;
if (n == 1) return 10;
var res = 9;
// 计算 n 位数的阶乘,共有几种不同数字的排列组合
for (var i = 1; i < n; i++) {
res *= (10 - i);
}
// 最后要加上 n - 1 位数的排列组合
return res + countNumbersWithUniqueDigits(n - 1);
};
```
```python
# by chatGPT (python)
class Solution:
def countNumbersWithUniqueDigits(self, n: int) -> int:
if n == 0:
return 1
if n == 1:
return 10
res = 9
# 计算 n 位数的阶乘,共有几种不同数字的排列组合
for i in range(1, n):
res *= (10 - i)
# 最后要加上 n - 1 位数的排列组合
return res + self.countNumbersWithUniqueDigits(n - 1)
```
https://leetcode.cn/problems/count-numbers-with-unique-digits 的多语言解法👆
https://leetcode.cn/problems/count-of-range-sum 的多语言解法👇
```cpp
@ -25790,6 +25883,48 @@ https://leetcode.cn/problems/flatten-nested-list-iterator 的多语言解法👆
https://leetcode.cn/problems/flip-game 的多语言解法👇
```cpp
// by chatGPT (cpp)
class Solution {
public:
vector<string> generatePossibleNextMoves(string currentState) {
vector<string> res;
for (int i = 1; i < currentState.size(); i++) {
if (currentState[i] == '+' && currentState[i - 1] == '+') {
// 做选择
currentState[i] = '-';
currentState[i - 1] = '-';
res.push_back(currentState);
// 撤销选择
currentState[i] = '+';
currentState[i - 1] = '+';
}
}
return res;
}
};
```
```go
// by chatGPT (go)
func generatePossibleNextMoves(currentState string) []string {
res := []string{}
arr := []rune(currentState)
for i := 1; i < len(arr); i++ {
if arr[i] == '+' && arr[i-1] == '+' {
// 做选择
arr[i] = '-'
arr[i-1] = '-'
res = append(res, string(arr))
// 撤销选择
arr[i] = '+'
arr[i-1] = '+'
}
}
return res
}
```
```java
// by labuladong (java)
class Solution {
@ -25812,10 +25947,161 @@ class Solution {
}
```
```javascript
// by chatGPT (javascript)
var generatePossibleNextMoves = function(currentState) {
var res = [];
var arr = Array.from(currentState);
for (var i = 1; i < arr.length; i++) {
if (arr[i] === '+' && arr[i - 1] === '+') {
// 做选择
arr[i] = '-';
arr[i - 1] = '-';
res.push(arr.join(''));
// 撤销选择
arr[i] = '+';
arr[i - 1] = '+';
}
}
return res;
}
```
```python
# by chatGPT (python)
class Solution(object):
def generatePossibleNextMoves(self, currentState):
"""
:type currentState: str
:rtype: List[str]
"""
res = []
for i in range(1, len(currentState)):
if currentState[i] == '+' and currentState[i - 1] == '+':
# 做选择
res.append(currentState[:i - 1] + '--' + currentState[i + 1:])
# 撤销选择 is not needed in python due to its immutability of string
return res
```
https://leetcode.cn/problems/flip-game 的多语言解法👆
https://leetcode.cn/problems/flip-game-ii 的多语言解法👇
```cpp
// by chatGPT (cpp)
class Solution {
public:
// 直接把 293 的代码 copy 过来,生成所有可能的下一步
vector<string> generatePossibleNextMoves(string currentState) {
vector<string> res;
for (int i = 1; i < currentState.size(); i++) {
if (currentState[i] == '+' && currentState[i - 1] == '+') {
// 做选择
currentState[i] = '-';
currentState[i - 1] = '-';
res.push_back(currentState);
// 撤销选择
currentState[i] = '+';
currentState[i - 1] = '+';
}
}
return res;
}
// 备忘录
unordered_map<string, bool> memo;
bool canWin(string currentState) {
// 记入备忘录
memo.clear();
return dp(currentState);
}
// 定义:输入字符串 s返回在此局面下先手是否可能赢
bool dp(string s) {
if (memo.find(s) != memo.end()) {
// 之前遇到过这种局面,直接返回结果
return memo[s];
}
vector<string> nextStates = generatePossibleNextMoves(s);
bool res = false;
for (string nextState : nextStates) {
// 只要有一个是 false说明当前玩家赢了
bool win = dp(nextState);
// 后序位置,做判断
if (!win) {
res = true;
break;
}
}
// 记入备忘录
memo[s] = res;
return res;
}
};
```
```go
// by chatGPT (go)
import "strings"
// 直接把 293 的代码 copy 过来,生成所有可能的下一步
func generatePossibleNextMoves(currentState string) []string {
res := make([]string, 0)
arr := []rune(currentState)
for i := 1; i < len(arr); i++ {
if arr[i] == '+' && arr[i-1] == '+' {
// making a choice
// 做选择
arr[i] = '-'
arr[i-1] = '-'
res = append(res, string(arr))
// undo choice
// 撤销选择
arr[i] = '+'
arr[i-1] = '+'
}
}
return res
}
func canWin(currentState string) bool {
// Definition: Enter string s, return whether the first hand can win in this face.
// 定义:输入字符串 s返回在此局面下先手是否可能赢
var dp func(string, map[string]bool) bool
dp = func(s string, memo map[string]bool) bool {
if _, ok := memo[s]; ok {
// have encountered this position before, return the result directly
// 之前遇到过这种局面,直接返回结果
return memo[s]
}
res := false
nextStates := generatePossibleNextMoves(s)
for _, nextState := range nextStates {
// As long as one is false, it means the current player won
// 只要有一个是 false说明当前玩家赢了
win := dp(nextState, memo)
// subsequent position, make a judgment
// 后序位置,做判断
if !win {
res = true
break
}
}
// record in the memo
// 记入备忘录
memo[s] = res
return res
}
// memo is a map that acts as the memoization for dp.
// 备忘录
memo := make(map[string]bool)
return dp(currentState, memo)
}
```
```java
// by labuladong (java)
class Solution {
@ -25871,6 +26157,52 @@ class Solution {
}
```
```python
# by chatGPT (python)
class Solution:
# 直接把 293 的代码 copy 过来,生成所有可能的下一步
def generatePossibleNextMoves(self, currentState):
res = []
arr = list(currentState)
for i in range(1, len(arr)):
if arr[i] == '+' and arr[i - 1] == '+':
# 做选择
arr[i] = '-'
arr[i - 1] = '-'
res.append("".join(arr))
# 撤销选择
arr[i] = '+'
arr[i - 1] = '+'
return res
# 备忘录
memo = {}
def canWin(self, currentState):
# 记入备忘录
self.memo.clear()
return self.dp(currentState)
# 定义:输入字符串 s返回在此局面下先手是否可能赢
def dp(self, s):
if s in self.memo:
# 之前遇到过这种局面,直接返回结果
return self.memo[s]
res = False
nextStates = self.generatePossibleNextMoves(s)
for nextState in nextStates:
# 只要有一个是 false说明当前玩家赢了
win = self.dp(nextState)
# 后序位置,做判断
if not win:
res = True
break
# 记入备忘录
self.memo[s] = res
return res
```
https://leetcode.cn/problems/flip-game-ii 的多语言解法👆
https://leetcode.cn/problems/freedom-trail 的多语言解法👇
@ -33758,6 +34090,179 @@ class Solution:
https://leetcode.cn/problems/letter-combinations-of-a-phone-number 的多语言解法👆
https://leetcode.cn/problems/letter-tile-possibilities 的多语言解法👇
```cpp
// by chatGPT (cpp)
class Solution {
public:
int res = 0;
vector<bool> used;
int numTilePossibilities(string s) {
vector<char> nums(s.begin(), s.end());
// 先排序,让相同的元素靠在一起
sort(nums.begin(), nums.end());
used = vector<bool>(nums.size(), false);
backtrack(nums);
return res - 1;
}
void backtrack(vector<char>& nums) {
res++;
for (int i = 0; i < nums.size(); i++) {
if (used[i]) {
continue;
}
// 新添加的剪枝逻辑,固定相同的元素在排列中的相对位置
if (i > 0 && nums[i] == nums[i - 1] && !used[i - 1]) {
continue;
}
used[i] = true;
backtrack(nums);
used[i] = false;
}
}
};
```
```go
// by chatGPT (go)
import (
"sort"
"strings"
)
func numTilePossibilities(s string) int {
nums := strings.Split(s, "")
// 先排序,让相同的元素靠在一起
sort.Strings(nums)
used := make([]bool, len(nums))
res := 0
var backtrack func(nums []string)
backtrack = func(nums []string) {
res++
for i := 0; i < len(nums); i++ {
if used[i] {
continue
}
// 新添加的剪枝逻辑,固定相同的元素在排列中的相对位置
if i > 0 && nums[i] == nums[i-1] && !used[i-1] {
continue
}
used[i] = true
backtrack(nums)
used[i] = false
}
}
backtrack(nums)
return res - 1
}
```
```java
// by labuladong (java)
class Solution {
int res = 0;
boolean[] used;
public int numTilePossibilities(String s) {
char[] nums = s.toCharArray();
// 先排序,让相同的元素靠在一起
Arrays.sort(nums);
used = new boolean[nums.length];
backtrack(nums);
return res - 1;
}
void backtrack(char[] nums) {
res++;
for (int i = 0; i < nums.length; i++) {
if (used[i]) {
continue;
}
// 新添加的剪枝逻辑,固定相同的元素在排列中的相对位置
if (i > 0 && nums[i] == nums[i - 1] && !used[i - 1]) {
continue;
}
used[i] = true;
backtrack(nums);
used[i] = false;
}
}
}
```
```javascript
// by chatGPT (javascript)
var numTilePossibilities = function(s) {
var res = 0;
var nums = s.split('').sort();
var used = new Array(nums.length).fill(false);
function backtrack(nums) {
res++;
for (var i = 0; i < nums.length; i++) {
if (used[i]) {
continue;
}
// 新添加的剪枝逻辑,固定相同的元素在排列中的相对位置
if (i > 0 && nums[i] == nums[i - 1] && !used[i - 1]) {
continue;
}
// 做选择
used[i] = true;
backtrack(nums);
// 撤销选择
used[i] = false;
}
}
backtrack(nums);
return res - 1;
};
```
```python
# by chatGPT (python)
class Solution:
def __init__(self):
self.res = 0
self.used = []
def numTilePossibilities(self, s: str) -> int:
nums = list(s)
# 先排序,让相同的元素靠在一起
nums.sort()
self.used = [False for _ in range(len(nums))]
self.backtrack(nums)
return self.res - 1
def backtrack(self, nums: list) -> None:
self.res += 1
for i in range(len(nums)):
if self.used[i]:
continue
# 新添加的剪枝逻辑,固定相同的元素在排列中的相对位置
if i > 0 and nums[i] == nums[i - 1] and not self.used[i - 1]:
continue
self.used[i] = True
self.backtrack(nums)
self.used[i] = False
```
https://leetcode.cn/problems/letter-tile-possibilities 的多语言解法👆
https://leetcode.cn/problems/lfu-cache 的多语言解法👇
```cpp

View File

@ -9,7 +9,7 @@
![](https://labuladong.github.io/pictures/souyisou1.png)
**通知:算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**
**通知:[新版网站会员](https://labuladong.online/algo/intro/site-vip/) 限时优惠;算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**

View File

@ -9,7 +9,7 @@
![](https://labuladong.github.io/pictures/souyisou1.png)
**通知:算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**
**通知:[新版网站会员](https://labuladong.online/algo/intro/site-vip/) 限时优惠;算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**

View File

@ -9,7 +9,7 @@
![](https://labuladong.github.io/pictures/souyisou1.png)
**通知:算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**
**通知:[新版网站会员](https://labuladong.online/algo/intro/site-vip/) 限时优惠;算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**

View File

@ -9,7 +9,7 @@
![](https://labuladong.github.io/pictures/souyisou1.png)
**通知:算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**
**通知:[新版网站会员](https://labuladong.online/algo/intro/site-vip/) 限时优惠;算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**

View File

@ -9,7 +9,7 @@
![](https://labuladong.github.io/pictures/souyisou1.png)
**通知:算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**
**通知:[新版网站会员](https://labuladong.online/algo/intro/site-vip/) 限时优惠;算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**

View File

@ -9,7 +9,7 @@
![](https://labuladong.github.io/pictures/souyisou1.png)
**通知:算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**
**通知:[新版网站会员](https://labuladong.online/algo/intro/site-vip/) 限时优惠;算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**

View File

@ -9,7 +9,7 @@
![](https://labuladong.github.io/pictures/souyisou1.png)
**通知:算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**
**通知:[新版网站会员](https://labuladong.online/algo/intro/site-vip/) 限时优惠;算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**

View File

@ -9,7 +9,7 @@
![](https://labuladong.github.io/pictures/souyisou1.png)
**通知:算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**
**通知:[新版网站会员](https://labuladong.online/algo/intro/site-vip/) 限时优惠;算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**

View File

@ -9,7 +9,7 @@
![](https://labuladong.github.io/pictures/souyisou1.png)
**通知:算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**
**通知:[新版网站会员](https://labuladong.online/algo/intro/site-vip/) 限时优惠;算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**

View File

@ -9,7 +9,7 @@
![](https://labuladong.github.io/pictures/souyisou1.png)
**通知:算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**
**通知:[新版网站会员](https://labuladong.online/algo/intro/site-vip/) 限时优惠;算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**
@ -324,6 +324,7 @@ void levelTraverse(TreeNode root) {
| :----: | :----: |
| [286. Walls and Gates](https://leetcode.com/problems/walls-and-gates/?show=1)🔒 | [286. 墙与门](https://leetcode.cn/problems/walls-and-gates/?show=1)🔒 |
| [310. Minimum Height Trees](https://leetcode.com/problems/minimum-height-trees/?show=1) | [310. 最小高度树](https://leetcode.cn/problems/minimum-height-trees/?show=1) |
| [329. Longest Increasing Path in a Matrix](https://leetcode.com/problems/longest-increasing-path-in-a-matrix/?show=1) | [329. 矩阵中的最长递增路径](https://leetcode.cn/problems/longest-increasing-path-in-a-matrix/?show=1) |
| [542. 01 Matrix](https://leetcode.com/problems/01-matrix/?show=1) | [542. 01 矩阵](https://leetcode.cn/problems/01-matrix/?show=1) |
</details>

View File

@ -9,7 +9,7 @@
![](https://labuladong.github.io/pictures/souyisou1.png)
**通知:算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**
**通知:[新版网站会员](https://labuladong.online/algo/intro/site-vip/) 限时优惠;算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**

View File

@ -9,7 +9,7 @@
![](https://labuladong.github.io/pictures/souyisou1.png)
**通知:算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**
**通知:[新版网站会员](https://labuladong.online/algo/intro/site-vip/) 限时优惠;算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**
@ -1007,6 +1007,7 @@ class Solution {
| [332. Reconstruct Itinerary](https://leetcode.com/problems/reconstruct-itinerary/?show=1) | [332. 重新安排行程](https://leetcode.cn/problems/reconstruct-itinerary/?show=1) |
| [333. Largest BST Subtree](https://leetcode.com/problems/largest-bst-subtree/?show=1)🔒 | [333. 最大 BST 子树](https://leetcode.cn/problems/largest-bst-subtree/?show=1)🔒 |
| [366. Find Leaves of Binary Tree](https://leetcode.com/problems/find-leaves-of-binary-tree/?show=1)🔒 | [366. 寻找二叉树的叶子节点](https://leetcode.cn/problems/find-leaves-of-binary-tree/?show=1)🔒 |
| [386. Lexicographical Numbers](https://leetcode.com/problems/lexicographical-numbers/?show=1) | [386. 字典序排数](https://leetcode.cn/problems/lexicographical-numbers/?show=1) |
| [404. Sum of Left Leaves](https://leetcode.com/problems/sum-of-left-leaves/?show=1) | [404. 左叶子之和](https://leetcode.cn/problems/sum-of-left-leaves/?show=1) |
| [426. Convert Binary Search Tree to Sorted Doubly Linked List](https://leetcode.com/problems/convert-binary-search-tree-to-sorted-doubly-linked-list/?show=1)🔒 | [426. 将二叉搜索树转化为排序的双向链表](https://leetcode.cn/problems/convert-binary-search-tree-to-sorted-doubly-linked-list/?show=1)🔒 |
| [437. Path Sum III](https://leetcode.com/problems/path-sum-iii/?show=1) | [437. 路径总和 III](https://leetcode.cn/problems/path-sum-iii/?show=1) |

View File

@ -9,7 +9,7 @@
![](https://labuladong.github.io/pictures/souyisou1.png)
**通知:算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**
**通知:[新版网站会员](https://labuladong.online/algo/intro/site-vip/) 限时优惠;算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**

View File

@ -9,7 +9,7 @@
![](https://labuladong.github.io/pictures/souyisou1.png)
**通知:算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**
**通知:[新版网站会员](https://labuladong.online/algo/intro/site-vip/) 限时优惠;算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**

View File

@ -9,7 +9,7 @@
![](https://labuladong.github.io/pictures/souyisou1.png)
**通知:算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**
**通知:[新版网站会员](https://labuladong.online/algo/intro/site-vip/) 限时优惠;算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**

View File

@ -9,7 +9,7 @@
![](https://labuladong.github.io/pictures/souyisou1.png)
**通知:算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**
**通知:[新版网站会员](https://labuladong.online/algo/intro/site-vip/) 限时优惠;算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**

View File

@ -9,7 +9,7 @@
![](https://labuladong.github.io/pictures/souyisou1.png)
**通知:算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**
**通知:[新版网站会员](https://labuladong.online/algo/intro/site-vip/) 限时优惠;算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**

View File

@ -9,7 +9,7 @@
![](https://labuladong.github.io/pictures/souyisou1.png)
**通知:算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**
**通知:[新版网站会员](https://labuladong.online/algo/intro/site-vip/) 限时优惠;算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**

View File

@ -9,7 +9,7 @@
![](https://labuladong.github.io/pictures/souyisou1.png)
**通知:算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**
**通知:[新版网站会员](https://labuladong.online/algo/intro/site-vip/) 限时优惠;算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**

View File

@ -9,7 +9,7 @@
![](https://labuladong.github.io/pictures/souyisou1.png)
**通知:算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**
**通知:[新版网站会员](https://labuladong.online/algo/intro/site-vip/) 限时优惠;算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**

View File

@ -9,7 +9,7 @@
![](https://labuladong.github.io/pictures/souyisou1.png)
**通知:算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**
**通知:[新版网站会员](https://labuladong.online/algo/intro/site-vip/) 限时优惠;算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**

View File

@ -9,7 +9,7 @@
![](https://labuladong.github.io/pictures/souyisou1.png)
**通知:算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**
**通知:[新版网站会员](https://labuladong.online/algo/intro/site-vip/) 限时优惠;算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**

View File

@ -9,7 +9,7 @@
![](https://labuladong.github.io/pictures/souyisou1.png)
**通知:算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**
**通知:[新版网站会员](https://labuladong.online/algo/intro/site-vip/) 限时优惠;算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**
@ -437,6 +437,7 @@ while (!q1.isEmpty() && !q2.isEmpty()) {
| [1926. Nearest Exit from Entrance in Maze](https://leetcode.com/problems/nearest-exit-from-entrance-in-maze/?show=1) | [1926. 迷宫中离入口最近的出口](https://leetcode.cn/problems/nearest-exit-from-entrance-in-maze/?show=1) |
| [286. Walls and Gates](https://leetcode.com/problems/walls-and-gates/?show=1)🔒 | [286. 墙与门](https://leetcode.cn/problems/walls-and-gates/?show=1)🔒 |
| [310. Minimum Height Trees](https://leetcode.com/problems/minimum-height-trees/?show=1) | [310. 最小高度树](https://leetcode.cn/problems/minimum-height-trees/?show=1) |
| [329. Longest Increasing Path in a Matrix](https://leetcode.com/problems/longest-increasing-path-in-a-matrix/?show=1) | [329. 矩阵中的最长递增路径](https://leetcode.cn/problems/longest-increasing-path-in-a-matrix/?show=1) |
| [365. Water and Jug Problem](https://leetcode.com/problems/water-and-jug-problem/?show=1) | [365. 水壶问题](https://leetcode.cn/problems/water-and-jug-problem/?show=1) |
| [431. Encode N-ary Tree to Binary Tree](https://leetcode.com/problems/encode-n-ary-tree-to-binary-tree/?show=1)🔒 | [431. 将 N 叉树编码为二叉树](https://leetcode.cn/problems/encode-n-ary-tree-to-binary-tree/?show=1)🔒 |
| [490. The Maze](https://leetcode.com/problems/the-maze/?show=1)🔒 | [490. 迷宫](https://leetcode.cn/problems/the-maze/?show=1)🔒 |

View File

@ -9,7 +9,7 @@
![](https://labuladong.github.io/pictures/souyisou1.png)
**通知:算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**
**通知:[新版网站会员](https://labuladong.online/algo/intro/site-vip/) 限时优惠;算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**

View File

@ -9,7 +9,7 @@
![](https://labuladong.github.io/pictures/souyisou1.png)
**通知:算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**
**通知:[新版网站会员](https://labuladong.online/algo/intro/site-vip/) 限时优惠;算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**

View File

@ -9,7 +9,7 @@
![](https://labuladong.github.io/pictures/souyisou1.png)
**通知:算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**
**通知:[新版网站会员](https://labuladong.online/algo/intro/site-vip/) 限时优惠;算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**

View File

@ -9,7 +9,7 @@
![](https://labuladong.github.io/pictures/souyisou1.png)
**通知:算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**
**通知:[新版网站会员](https://labuladong.online/algo/intro/site-vip/) 限时优惠;算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**

View File

@ -9,7 +9,7 @@
![](https://labuladong.github.io/pictures/souyisou1.png)
**通知:算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**
**通知:[新版网站会员](https://labuladong.online/algo/intro/site-vip/) 限时优惠;算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**

View File

@ -9,7 +9,7 @@
![](https://labuladong.github.io/pictures/souyisou1.png)
**通知:算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**
**通知:[新版网站会员](https://labuladong.online/algo/intro/site-vip/) 限时优惠;算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**

View File

@ -9,7 +9,7 @@
![](https://labuladong.github.io/pictures/souyisou1.png)
**通知:算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**
**通知:[新版网站会员](https://labuladong.online/algo/intro/site-vip/) 限时优惠;算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**
@ -470,6 +470,7 @@ def backtrack(...):
| [77. Combinations](https://leetcode.com/problems/combinations/?show=1) | [77. 组合](https://leetcode.cn/problems/combinations/?show=1) |
| [78. Subsets](https://leetcode.com/problems/subsets/?show=1) | [78. 子集](https://leetcode.cn/problems/subsets/?show=1) |
| [784. Letter Case Permutation](https://leetcode.com/problems/letter-case-permutation/?show=1) | [784. 字母大小写全排列](https://leetcode.cn/problems/letter-case-permutation/?show=1) |
| [89. Gray Code](https://leetcode.com/problems/gray-code/?show=1) | [89. 格雷编码](https://leetcode.cn/problems/gray-code/?show=1) |
| [93. Restore IP Addresses](https://leetcode.com/problems/restore-ip-addresses/?show=1) | [93. 复原 IP 地址](https://leetcode.cn/problems/restore-ip-addresses/?show=1) |
| - | [剑指 Offer 34. 二叉树中和为某一值的路径](https://leetcode.cn/problems/er-cha-shu-zhong-he-wei-mou-yi-zhi-de-lu-jing-lcof/?show=1) |
| - | [剑指 Offer II 079. 所有子集](https://leetcode.cn/problems/TVdhkn/?show=1) |

View File

@ -9,7 +9,7 @@
![](https://labuladong.github.io/pictures/souyisou1.png)
**通知:算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**
**通知:[新版网站会员](https://labuladong.online/algo/intro/site-vip/) 限时优惠;算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**

View File

@ -9,7 +9,7 @@
![](https://labuladong.github.io/pictures/souyisou1.png)
**通知:算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**
**通知:[新版网站会员](https://labuladong.online/algo/intro/site-vip/) 限时优惠;算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**

View File

@ -9,7 +9,7 @@
![](https://labuladong.github.io/pictures/souyisou1.png)
**通知:算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**
**通知:[新版网站会员](https://labuladong.online/algo/intro/site-vip/) 限时优惠;算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**

View File

@ -9,7 +9,7 @@
![](https://labuladong.github.io/pictures/souyisou1.png)
**通知:算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**
**通知:[新版网站会员](https://labuladong.online/algo/intro/site-vip/) 限时优惠;算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**

View File

@ -9,7 +9,7 @@
![](https://labuladong.github.io/pictures/souyisou1.png)
**通知:算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**
**通知:[新版网站会员](https://labuladong.online/algo/intro/site-vip/) 限时优惠;算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**

View File

@ -9,7 +9,7 @@
![](https://labuladong.github.io/pictures/souyisou1.png)
**通知:算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**
**通知:[新版网站会员](https://labuladong.online/algo/intro/site-vip/) 限时优惠;算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**

View File

@ -9,7 +9,7 @@
![](https://labuladong.github.io/pictures/souyisou1.png)
**通知:算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**
**通知:[新版网站会员](https://labuladong.online/algo/intro/site-vip/) 限时优惠;算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**

View File

@ -9,7 +9,7 @@
![](https://labuladong.github.io/pictures/souyisou1.png)
**通知:算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**
**通知:[新版网站会员](https://labuladong.online/algo/intro/site-vip/) 限时优惠;算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**

View File

@ -9,7 +9,7 @@
![](https://labuladong.github.io/pictures/souyisou1.png)
**通知:算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**
**通知:[新版网站会员](https://labuladong.online/algo/intro/site-vip/) 限时优惠;算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**

View File

@ -9,7 +9,7 @@
![](https://labuladong.github.io/pictures/souyisou1.png)
**通知:算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**
**通知:[新版网站会员](https://labuladong.online/algo/intro/site-vip/) 限时优惠;算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**
@ -185,13 +185,14 @@ class DoubleList {
}
```
如果对链表的操作不熟悉,可以看前文 [手把手带你实现双链表](https://labuladong.online/algo/fname.html?fname=链表基础)。
到这里就能回答刚才「为什么必须要用双向链表」的问题了,因为我们需要删除操作。删除一个节点不光要得到该节点本身的指针,也需要操作其前驱节点的指针,而双向链表才能支持直接查找前驱,保证操作的时间复杂度 O(1)。
**注意我们实现的双链表 API 只能从尾部插入,也就是说靠尾部的数据是最近使用的,靠头部的数据是最久未使用的**
有了双向链表的实现,我们只需要在 LRU 算法中把它和哈希表结合起来即可,先搭出代码框架:
<!-- muliti_language -->
```java
class LRUCache {
// key -> Node(key, val)
@ -214,7 +215,6 @@ class LRUCache {
说的有点玄幻,实际上很简单,就是尽量让 LRU 的主方法 `get``put` 避免直接操作 `map``cache` 的细节。我们可以先实现下面几个函数:
<!-- muliti_language -->
```java
class LRUCache {
// 为了节约篇幅,省略上文给出的代码部分...
@ -264,7 +264,6 @@ class LRUCache {
上述方法就是简单的操作封装,调用这些函数可以避免直接操作 `cache` 链表和 `map` 哈希表,下面我先来实现 LRU 算法的 `get` 方法:
<!-- muliti_language -->
```java
class LRUCache {
// 为了节约篇幅,省略上文给出的代码部分...
@ -286,7 +285,6 @@ class LRUCache {
这样我们可以轻松写出 `put` 方法的代码:
<!-- muliti_language -->
```java
class LRUCache {
// 为了节约篇幅,省略上文给出的代码部分...
@ -312,7 +310,6 @@ class LRUCache {
至此,你应该已经完全掌握 LRU 算法的原理和实现了,我们最后用 Java 的内置类型 `LinkedHashMap` 来实现 LRU 算法,逻辑和之前完全一致,我就不过多解释了:
<!-- muliti_language -->
```java
class LRUCache {
int cap;

View File

@ -9,7 +9,7 @@
![](https://labuladong.github.io/pictures/souyisou1.png)
**通知:算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**
**通知:[新版网站会员](https://labuladong.online/algo/intro/site-vip/) 限时优惠;算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**

View File

@ -9,7 +9,7 @@
![](https://labuladong.github.io/pictures/souyisou1.png)
**通知:算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**
**通知:[新版网站会员](https://labuladong.online/algo/intro/site-vip/) 限时优惠;算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**

View File

@ -9,7 +9,7 @@
![](https://labuladong.github.io/pictures/souyisou1.png)
**通知:算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**
**通知:[新版网站会员](https://labuladong.online/algo/intro/site-vip/) 限时优惠;算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**

View File

@ -9,7 +9,7 @@
![](https://labuladong.github.io/pictures/souyisou1.png)
**通知:算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**
**通知:[新版网站会员](https://labuladong.online/algo/intro/site-vip/) 限时优惠;算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**

View File

@ -9,7 +9,7 @@
![](https://labuladong.github.io/pictures/souyisou1.png)
**通知:算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**
**通知:[新版网站会员](https://labuladong.online/algo/intro/site-vip/) 限时优惠;算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**

View File

@ -9,7 +9,7 @@
![](https://labuladong.github.io/pictures/souyisou1.png)
**通知:算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**
**通知:[新版网站会员](https://labuladong.online/algo/intro/site-vip/) 限时优惠;算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**

View File

@ -9,7 +9,7 @@
![](https://labuladong.github.io/pictures/souyisou1.png)
**通知:算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**
**通知:[新版网站会员](https://labuladong.online/algo/intro/site-vip/) 限时优惠;算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**

View File

@ -9,7 +9,7 @@
![](https://labuladong.github.io/pictures/souyisou1.png)
**通知:算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**
**通知:[新版网站会员](https://labuladong.online/algo/intro/site-vip/) 限时优惠;算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**

View File

@ -9,7 +9,7 @@
![](https://labuladong.github.io/pictures/souyisou1.png)
**通知:算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**
**通知:[新版网站会员](https://labuladong.online/algo/intro/site-vip/) 限时优惠;算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**

View File

@ -9,7 +9,7 @@
![](https://labuladong.github.io/pictures/souyisou1.png)
**通知:算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**
**通知:[新版网站会员](https://labuladong.online/algo/intro/site-vip/) 限时优惠;算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**

View File

@ -9,7 +9,7 @@
![](https://labuladong.github.io/pictures/souyisou1.png)
**通知:算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**
**通知:[新版网站会员](https://labuladong.online/algo/intro/site-vip/) 限时优惠;算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**

View File

@ -9,7 +9,7 @@
![](https://labuladong.github.io/pictures/souyisou1.png)
**通知:算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**
**通知:[新版网站会员](https://labuladong.online/algo/intro/site-vip/) 限时优惠;算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**

View File

@ -9,7 +9,7 @@
![](https://labuladong.github.io/pictures/souyisou1.png)
**通知:算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**
**通知:[新版网站会员](https://labuladong.online/algo/intro/site-vip/) 限时优惠;算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**

View File

@ -9,7 +9,7 @@
![](https://labuladong.github.io/pictures/souyisou1.png)
**通知:算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**
**通知:[新版网站会员](https://labuladong.online/algo/intro/site-vip/) 限时优惠;算法可视化编辑器上线,[点击体验](https://labuladong.online/algo/intro/visualize/)!另外,建议你在我的 [网站](https://labuladong.online/algo/) 学习文章,体验更好。**