Skip to content

Commit 0d2bf63

Browse files
committed
小修改
1 parent a4c9506 commit 0d2bf63

File tree

5 files changed

+19
-19
lines changed

5 files changed

+19
-19
lines changed

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

66 Bytes
Binary file not shown.

C++/chapBFS.tex

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -409,8 +409,8 @@ \subsection{代码模板}
409409
const state_t state = current.front();
410410
current.pop();
411411
vector<state_t> new_states = state_extend(state, visited);
412-
for (auto iter = new_states.begin();
413-
iter != new_states.end() && ! found; ++iter) {
412+
for (auto iter = new_states.cbegin();
413+
iter != new_states.cend() && ! found; ++iter) {
414414
const state_t new_state(*iter);
415415

416416
if (state_is_target(new_state)) {

C++/chapDynamicProgramming.tex

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1123,17 +1123,17 @@ \subsubsection{动规}
11231123
public:
11241124
bool wordBreak(string s, unordered_set<string> &dict) {
11251125
// 长度为n的字符串有n+1个隔板
1126-
vector<bool> f(s.length() + 1, false);
1127-
f[0] = true;
1128-
for (int i = 1; i <= s.length(); ++i) {
1126+
vector<bool> f(s.size() + 1, false);
1127+
f[0] = true; // 空字符串
1128+
for (int i = 1; i <= s.size(); ++i) {
11291129
for (int j = i - 1; j >= 0; --j) {
11301130
if (f[j] && dict.find(s.substr(j, i - j)) != dict.end()) {
11311131
f[i] = true;
11321132
break;
11331133
}
11341134
}
11351135
}
1136-
return f[s.length()];
1136+
return f[s.size()];
11371137
}
11381138
};
11391139
\end{Code}
@@ -1176,9 +1176,9 @@ \subsubsection{代码}
11761176
vector<bool> f(s.length() + 1, false);
11771177
// path[i][j]为true,表示s[j, i)是一个合法单词,可以从j处切开
11781178
// 第一行未用
1179-
vector<vector<bool> > prev(s.length()+1, vector<bool>(s.length()));
1179+
vector<vector<bool> > prev(s.length() + 1, vector<bool>(s.length()));
11801180
f[0] = true;
1181-
for (int i = 1; i <= s.length(); ++i) {
1181+
for (size_t i = 1; i <= s.length(); ++i) {
11821182
for (int j = i - 1; j >= 0; --j) {
11831183
if (f[j] && dict.find(s.substr(j, i - j)) != dict.end()) {
11841184
f[i] = true;
@@ -1198,12 +1198,12 @@ \subsubsection{代码}
11981198
int cur, vector<string> &path, vector<string> &result) {
11991199
if (cur == 0) {
12001200
string tmp;
1201-
for (auto iter = path.rbegin(); iter != path.rend(); ++iter)
1201+
for (auto iter = path.crbegin(); iter != path.crend(); ++iter)
12021202
tmp += *iter + " ";
1203-
tmp.erase(tmp.end()-1);
1203+
tmp.erase(tmp.end() - 1);
12041204
result.push_back(tmp);
12051205
}
1206-
for (int i = 0; i < s.length(); ++i) {
1206+
for (size_t i = 0; i < s.size(); ++i) {
12071207
if (prev[cur][i]) {
12081208
path.push_back(s.substr(i, cur - i));
12091209
gen_path(s, prev, i, path, result);

C++/chapLinearList.tex

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1614,14 +1614,14 @@ \subsubsection{代码}
16141614
vector<int> increment(n);
16151615

16161616
// 左右各扫描一遍
1617-
for (int i = 0, inc = 1; i < n; i++)
1618-
if (i >= 1 && ratings[i] > ratings[i - 1])
1617+
for (int i = 1, inc = 1; i < n; i++)
1618+
if (ratings[i] > ratings[i - 1])
16191619
increment[i] = max(inc++, increment[i]);
16201620
else
16211621
inc = 1;
16221622

1623-
for (int i = n - 1, inc = 1; i >= 0; i--)
1624-
if (i < n - 1 && ratings[i] > ratings[i + 1])
1623+
for (int i = n - 2, inc = 1; i >= 0; i--)
1624+
if (ratings[i] > ratings[i + 1])
16251625
increment[i] = max(inc++, increment[i]);
16261626
else
16271627
inc = 1;

C++/chapString.tex

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -596,7 +596,7 @@ \subsubsection{递归版}
596596
public:
597597
bool isMatch(const char *s, const char *p) {
598598
if (*p == '*') {
599-
while (*p == '*') ++p;
599+
while (*p == '*') ++p; //skip continuous '*'
600600
if (*p == '\0') return true;
601601
while (*s != '\0' && !isMatch(s, p)) ++s;
602602
@@ -613,7 +613,7 @@ \subsubsection{递归版}
613613
\subsubsection{迭代版}
614614
\begin{Code}
615615
// LeetCode, Wildcard Matching
616-
// 迭代版,时间复杂度O(n),空间复杂度O(1)
616+
// 迭代版,时间复杂度O(n*m),空间复杂度O(1)
617617
class Solution {
618618
public:
619619
bool isMatch(const char *s, const char *p) {
@@ -626,7 +626,7 @@ \subsubsection{迭代版}
626626
case '*':
627627
star = true;
628628
s = str, p = ptr;
629-
while (*p == '*') p++;
629+
while (*p == '*') p++; //skip continuous '*'
630630
if (*p == '\0') return true;
631631
str = s - 1;
632632
ptr = p - 1;
@@ -998,7 +998,7 @@ \subsubsection{代码}
998998
}
999999
10001000
vector<string> result;
1001-
for (auto it = group.begin(); it != group.end(); it++) {
1001+
for (auto it = group.cbegin(); it != group.cend(); it++) {
10021002
if (it->second.size() > 1)
10031003
result.insert(result.end(), it->second.begin(), it->second.end());
10041004
}

0 commit comments

Comments
 (0)