Skip to content

Commit 94089f5

Browse files
committed
Merge pull request soulmachine#10 from advancedxy/master
mergeTwoLists算法优化和tex文件中集合符号的修改
2 parents 60b7fbe + cb5b62f commit 94089f5

File tree

4 files changed

+19
-16
lines changed

4 files changed

+19
-16
lines changed

.gitignore

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
*.log
2+
*.toc
3+
*.aux
4+
*.idx
5+
*.out
6+
leetcode-cpp.pdf

C++/chapBruteforce.tex

+1-1
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ \subsubsection{增量构造法}
134134
\subsubsection{二进制法}
135135
本方法的前提是:集合的元素不超过int位数。用一个int整数表示位向量,第$i$位为1,则表示选择$S[i]$,为0则不选择。例如\fn{S=\{A,B,C,D\}},则\fn{0110=6}表示子集\fn{\{B,C\}}。
136136

137-
这种方法最巧妙。因为它不仅能生成子集,还能方便的表示集合的并、交、差等集合运算。设两个集合的位向量分别为$B_1$$B_2$,则$B_1|B_2, B_1 \& B_2, B_1 \^ B_2$分别对应集合的并、交、对称差。
137+
这种方法最巧妙。因为它不仅能生成子集,还能方便的表示集合的并、交、差等集合运算。设两个集合的位向量分别为$B_1$$B_2$,则$B_1\cup B_2, B_1 \cap B_2, B_1 \triangle B_2$分别对应集合的并、交、对称差。
138138

139139
二进制法,也可以看做是位向量法,只不过更加优化。
140140

C++/chapSorting.tex

+10-13
Original file line numberDiff line numberDiff line change
@@ -56,23 +56,20 @@ \subsubsection{分析}
5656
\subsubsection{代码}
5757
\begin{Code}
5858
//LeetCode, Merge Two Sorted Lists
59-
// 时间复杂度O(m+n),空间复杂度O(1)
59+
// 时间复杂度O(min(m,n)),空间复杂度O(1)
6060
class Solution {
6161
public:
6262
ListNode *mergeTwoLists(ListNode *l1, ListNode *l2) {
63-
ListNode head(-1);
64-
for (ListNode* p = &head; l1 != nullptr || l2 != nullptr; p = p->next) {
65-
int val1 = l1 == nullptr ? INT_MAX : l1->val;
66-
int val2 = l2 == nullptr ? INT_MAX : l2->val;
67-
if (val1 <= val2) {
68-
p->next = l1;
69-
l1 = l1->next;
70-
} else {
71-
p->next = l2;
72-
l2 = l2->next;
73-
}
63+
if (l1 == nullptr) return l2;
64+
if (l2 == nullptr) return l1;
65+
ListNode h(-1);
66+
ListNode *p = &h;
67+
for (; l1 != nullptr && l2 != nullptr; p = p->next) {
68+
if (l1->val > l2->val) { p->next = l2; l2 = l2->next; }
69+
else { p->next = l1; l1 = l1->next; }
7470
}
75-
return head.next;
71+
p->next = l1 != nullptr ? l1 : l2;
72+
return h.next;
7673
}
7774
};
7875
\end{Code}

C++/format.cls

+2-2
Original file line numberDiff line numberDiff line change
@@ -52,8 +52,8 @@ body={390pt,530pt},marginparsep=10pt,marginpar=50pt]{geometry}
5252

5353
\setlength\abovecaptionskip{0pt}
5454

55-
%\setmainfont{Times New Roman}
56-
\setmainfont{Linux Libertine O}
55+
\setmainfont{Times New Roman}
56+
%\setmainfont{Linux Libertine}
5757
%\setmainfont{TeX Gyre Pagella}
5858
\newfontfamily\urlfont{PT Sans Narrow}
5959
%\setmonofont[AutoFakeBold=1.6,AutoFakeSlant=0.17,Mapping=tex-text-tt]{Inconsolata}

0 commit comments

Comments
 (0)