Skip to content

Commit 383d815

Browse files
committed
将多个解法分开得更清晰
1 parent 9639b97 commit 383d815

10 files changed

+132
-59
lines changed

C++/LeetCodet题解(C++版).pdf

10.2 KB
Binary file not shown.

C++/chapBFS.tex

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -313,7 +313,6 @@ \section{小结} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
313313

314314

315315
\subsection{适用场景}
316-
注意,这里的总结是一种经验,一种概率,不是绝对的结论!
317316

318317
\textbf{输入数据}:没什么特征,不像深搜,需要有“递归”的性质。如果是树或者图,概率更大。
319318

C++/chapDFS.tex

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ \subsubsection{分析}
2626
一个长度为n的字符串,有n+1个地方可以砍断,每个地方可断可不断,前后两个隔板默认已经使用,因此复杂度为$O(2^{n-1})$
2727

2828

29-
\subsubsection{代码}
29+
\subsubsection{深搜1}
3030
\begin{Code}
3131
//LeetCode, Palindrome Partitioning
3232
// 时间复杂度O(2^n),空间复杂度O(n)
@@ -72,6 +72,7 @@ \subsubsection{代码}
7272
};
7373
\end{Code}
7474

75+
\subsubsection{深搜2}
7576
另一种写法,更加简洁。这种写法也在 Combination Sum, Combination Sum II 中出现过。
7677
\begin{Code}
7778
//LeetCode, Palindrome Partitioning
@@ -110,6 +111,8 @@ \subsubsection{代码}
110111
};
111112
\end{Code}
112113

114+
115+
\subsubsection{动规}
113116
\begin{Code}
114117
// LeetCode, Palindrome Partitioning
115118
// 动规,时间复杂度O(n^2),空间复杂度O(1)
@@ -814,7 +817,7 @@ \subsubsection{分析}
814817
一步步构造字符串。当左括号出现次数$<n$时,就可以放置新的左括号。当右括号出现次数小于左括号出现次数时,就可以放置新的右括号。
815818

816819

817-
\subsubsection{代码}
820+
\subsubsection{代码1}
818821
\begin{Code}
819822
// LeetCode, Generate Parentheses
820823
// 时间复杂度O(TODO),空间复杂度O(n)
@@ -837,6 +840,8 @@ \subsubsection{代码}
837840
};
838841
\end{Code}
839842

843+
844+
\subsubsection{代码2}
840845
另一种递归写法,更加简洁。
841846
\begin{Code}
842847
// LeetCode, Generate Parentheses
@@ -1020,8 +1025,6 @@ \section{小结} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10201025

10211026
\subsection{适用场景}
10221027

1023-
注意,这里的总结是一种经验,一种概率,不是绝对的结论!
1024-
10251028
\textbf{输入数据}:如果是递归数据结构,如单链表,二叉树,集合,则百分之百可以用深搜;如果是非递归数据结构,如一维数组,二维数组,字符串,图,则概率小一些。
10261029

10271030
\textbf{状态转换图}:树或者图。

C++/chapGraph.tex

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ \subsubsection{分析}
4747
广度优先遍历或深度优先遍历都可以。
4848

4949

50-
\subsubsection{代码}
50+
\subsubsection{深搜}
5151
\begin{Code}
5252
// LeetCode, Clone Graph
5353
// DFS,时间复杂度O(n),空间复杂度O(n)
@@ -78,6 +78,8 @@ \subsubsection{代码}
7878
};
7979
\end{Code}
8080

81+
82+
\subsubsection{广搜}
8183
\begin{Code}
8284
// LeetCode, Clone Graph
8385
// BFS,时间复杂度O(n),空间复杂度O(n)

C++/chapGreedy.tex

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,8 @@ \subsubsection{分析}
3131
f[i] = max(f[i-1], A[i-1])-1, i > 0
3232
$$
3333

34-
\subsubsection{代码}
34+
35+
\subsubsection{代码1}
3536
\begin{Code}
3637
// LeetCode, Jump Game
3738
// 思路1,时间复杂度O(n),空间复杂度O(1)
@@ -46,6 +47,8 @@ \subsubsection{代码}
4647
};
4748
\end{Code}
4849

50+
51+
\subsubsection{代码2}
4952
\begin{Code}
5053
// LeetCode, Jump Game
5154
// 思路2,时间复杂度O(n),空间复杂度O(1)
@@ -65,6 +68,8 @@ \subsubsection{代码}
6568
};
6669
\end{Code}
6770

71+
72+
\subsubsection{代码3}
6873
\begin{Code}
6974
// LeetCode, Jump Game
7075
// 思路三,动规,时间复杂度O(n),空间复杂度O(n)
@@ -110,7 +115,7 @@ \subsubsection{分析}
110115
贪心法。
111116

112117

113-
\subsubsection{代码}
118+
\subsubsection{代码1}
114119
\begin{Code}
115120
// LeetCode, Jump Game II
116121
// 时间复杂度O(n),空间复杂度O(1)
@@ -138,6 +143,8 @@ \subsubsection{代码}
138143
};
139144
\end{Code}
140145

146+
147+
\subsubsection{代码2}
141148
\begin{Code}
142149
// LeetCode, Jump Game II
143150
// 时间复杂度O(n),空间复杂度O(1)

0 commit comments

Comments
 (0)