Skip to content

Commit 69ac3db

Browse files
Kyle Liu6boris
Kyle Liu
authored andcommitted
add offer 12 solution
1 parent 071bf43 commit 69ac3db

File tree

2 files changed

+70
-1
lines changed

2 files changed

+70
-1
lines changed

SUMMARY.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,10 @@
1010
* [OF4. 二维数组中的查找](docs/jzof/of004.md)
1111
* [OF5. 替换空格](docs/jzof/of005.md)
1212
* [OF6.从尾到头打印链表](docs/jzof/of006.md)
13-
* [OF37.序列化二叉树](docs/jzof/of037.md)
13+
* [OF12.矩阵中的路径](docs/jzof/of012.md)
1414
* [OF14-I.剪绳子](docs/jzof/of014-i.md)
1515
* [OF14-II.剪绳子](docs/jzof/of014-ii.md)
16+
* [OF37.序列化二叉树](docs/jzof/of037.md)
1617
* [LeetCode](docs/leetcode/README.md)
1718
* [1-100](docs/leetcode/1-100/README.md)
1819
* [1.Add Sum](docs/leetcode/1-100/1.add-sum.md)

docs/jzof/of012.md

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
---
2+
description: 剑指 Offer 06. 从尾到头打印链表
3+
---
4+
5+
# OF6.矩阵中的路径
6+
7+
## 题目描述
8+
9+
[题目地址](https://leetcode-cn.com/problems/ju-zhen-zhong-de-lu-jing-lcof/)
10+
11+
请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一格开始,每一步可以在矩阵中向左、右、上、下移动一格。如果一条路径经过了矩阵的某一格,那么该路径不能再次进入该格子。例如,在下面的3×4的矩阵中包含一条字符串“bfce”的路径(路径中的字母用加粗标出)。
12+
13+
[["a","b","c","e"],
14+
["s","f","c","s"],
15+
["a","d","e","e"]]
16+
17+
但矩阵中不包含字符串“abfb”的路径,因为字符串的第一个字符b占据了矩阵中的第一行第二个格子之后,路径不能再次进入这个格子。
18+
19+
20+
### **示例 1:**
21+
22+
```go
23+
输入:board = [["A","B","C","E"],["S","F","C","S"],["A","D","E","E"]], word = "ABCCED"
24+
输出:true
25+
```
26+
27+
28+
```go
29+
输入:board = [["a","b"],["c","d"]], word = "abcd"
30+
输出:false
31+
```
32+
33+
## 题解
34+
35+
### 思路1 : 递归
36+
37+
递归遍历
38+
39+
**算法流程:**
40+
41+
1. **复杂度分析:**
42+
2. **时间复杂度**$$O(N)$$****遍历N次,递归 N 次
43+
3. **空间复杂度**$$O(N)$$****递归 N 次,开辟 N 个栈空间
44+
45+
#### 代码
46+
47+
{% tabs %}
48+
{% tab title="Go" %}
49+
```go
50+
func reversePrint(head *ListNode) []int {
51+
ans := make([]int, 0)
52+
if head == nil {
53+
return ans
54+
}
55+
ans = reversePrint(head.Next)
56+
ans = append(ans, head.Val)
57+
return ans
58+
}
59+
```
60+
{% endtab %}
61+
{% endtabs %}
62+
63+
64+
65+
## 总结
66+
67+
如果你同我一样热爱数据结构、算法、LeetCode,可以关注我 GitHub 上的 算法 题解:[awesome-golang-algorithm](https://github.com/kylesliu/awesome-golang-algorithm)
68+

0 commit comments

Comments
 (0)