From 71d8678c9ab1cc183b48d8db985b5f12ded5bde9 Mon Sep 17 00:00:00 2001 From: youngyangyang04 <826123027@qq.com> Date: Fri, 9 Oct 2020 10:24:49 +0800 Subject: [PATCH] Update --- README.md | 11 +- ...ºä¸Žä¸­åºé历åºåˆ—æž„é€ äºŒå‰æ ‘.png | Bin 0 -> 9196 bytes ...与åŽåºé历åºåˆ—æž„é€ äºŒå‰æ ‘1.png | Bin 0 -> 9422 bytes ...与åŽåºé历åºåˆ—æž„é€ äºŒå‰æ ‘2.png | Bin 0 -> 62243 bytes ...åºä¸ŽåŽåºé历åºåˆ—æž„é€ äºŒå‰æ ‘.md | 149 +++++++++++++----- problems/0111.äºŒå‰æ ‘çš„æœ€å°æ·±åº¦.md | 7 +- problems/0141.环形链表.md | 45 ++++++ 7 files changed, 169 insertions(+), 43 deletions(-) create mode 100644 pics/105. 从å‰åºä¸Žä¸­åºé历åºåˆ—æž„é€ äºŒå‰æ ‘.png create mode 100644 pics/106. 从中åºä¸ŽåŽåºé历åºåˆ—æž„é€ äºŒå‰æ ‘1.png create mode 100644 pics/106.从中åºä¸ŽåŽåºé历åºåˆ—æž„é€ äºŒå‰æ ‘2.png create mode 100644 problems/0141.环形链表.md diff --git a/README.md b/README.md index bc3927d1..89bceef7 100644 --- a/README.md +++ b/README.md @@ -67,7 +67,16 @@ * [字符串:å‰ç¼€è¡¨ä¸å³ç§»ï¼Œéš¾é“就写ä¸å‡ºKMP了?](https://mp.weixin.qq.com/s/p3hXynQM2RRROK5c6X7xfw) * [字符串:总结篇ï¼](https://mp.weixin.qq.com/s/gtycjyDtblmytvBRFlCZJg) -* [åŒæŒ‡é’ˆæ³•:总结篇ï¼](https://mp.weixin.qq.com/s/_p7grwjISfMh0U65uOyCjA) +* åŒæŒ‡é’ˆæ³• + * [数组:就移除个元素很难么?](https://mp.weixin.qq.com/s/wj0T-Xs88_FHJFwayElQlA) + * [字符串:这é“é¢˜ç›®ï¼Œä½¿ç”¨åº“å‡½æ•°ä¸€è¡Œä»£ç æžå®š](https://mp.weixin.qq.com/s/X02S61WCYiCEhaik6VUpFA) + * [字符串:替æ¢ç©ºæ ¼](https://mp.weixin.qq.com/s/t0A9C44zgM-RysAQV3GZpg) + * [字符串:花å¼å转还ä¸å¤Ÿï¼](https://mp.weixin.qq.com/s/X3qpi2v5RSp08mO-W5Vicw) + * [链表:å¬è¯´è¿‡ä¸¤å¤©å转链表åˆå†™ä¸å‡ºæ¥äº†ï¼Ÿ](https://mp.weixin.qq.com/s/pnvVP-0ZM7epB8y3w_Njwg) + * [链表:环找到了,那入å£å‘¢ï¼Ÿ](https://mp.weixin.qq.com/s/_QVP3IkRZWx9zIpQRgajzA) + * [哈希表:解决了两数之和,那么能解决三数之和么?](https://mp.weixin.qq.com/s/r5cgZFu0tv4grBAexdcd8A) + * [åŒæŒ‡é’ˆæ³•:一样的é“ç†ï¼Œèƒ½è§£å†³å››æ•°ä¹‹å’Œ](https://mp.weixin.qq.com/s/nQrcco8AZJV1pAOVjeIU_g) + * [åŒæŒ‡é’ˆæ³•:总结篇ï¼](https://mp.weixin.qq.com/s/_p7grwjISfMh0U65uOyCjA) * 栈与队列 * [栈与队列:æ¥çœ‹çœ‹æ ˆå’Œé˜Ÿåˆ—ä¸ä¸ºäººçŸ¥çš„一é¢](https://mp.weixin.qq.com/s/VZRjOccyE09aE-MgLbCMjQ) diff --git a/pics/105. 从å‰åºä¸Žä¸­åºé历åºåˆ—æž„é€ äºŒå‰æ ‘.png b/pics/105. 从å‰åºä¸Žä¸­åºé历åºåˆ—æž„é€ äºŒå‰æ ‘.png new file mode 100644 index 0000000000000000000000000000000000000000..7430be27c8f5ea3df3ee5984891d08d2cedbc3f4 GIT binary patch literal 9196 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 literal 0 HcmV?d00001 diff --git a/pics/106. 从中åºä¸ŽåŽåºé历åºåˆ—æž„é€ äºŒå‰æ ‘1.png b/pics/106. 从中åºä¸ŽåŽåºé历åºåˆ—æž„é€ äºŒå‰æ ‘1.png new file mode 100644 index 0000000000000000000000000000000000000000..ab8fa4b95ad3233b9d051af4dd8a0f023f3dad16 GIT binary patch literal 9422 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 literal 0 HcmV?d00001 diff --git a/pics/106.从中åºä¸ŽåŽåºé历åºåˆ—æž„é€ äºŒå‰æ ‘2.png b/pics/106.从中åºä¸ŽåŽåºé历åºåˆ—æž„é€ äºŒå‰æ ‘2.png new file mode 100644 index 0000000000000000000000000000000000000000..8726f4ce38c84314c3feb3a2460cfb99356543ad GIT binary patch literal 62243 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
fcNk|9O5- zw$$1tGb`Xv?^h z3ugMQZ*Lz>cY08~==#*fi37e4(CS}5u1kmzR0gYf3j>X#>ZgAJc~cdb+XgR(CtYyt zug0tx)yM`^yCb`4{R-PfT?3d+H#Nu)-TGSP24`3g$vR$LZ+?v_Rfz{ZCR<44A}Xzc zv)KqO35xWpg@;mD{ui7D6!`u(oMi!%LxIEvXh}~jN1Q8NsKVZvEP5jLE^8N;yYlIN ziWM9KiM{_ogGWG~8*88(-#Fr<*M&R3Ny{9< zP#zcyPH;`;&XR;Sq!<#+QtKe7LV(`0yv$ z{h#(d`U1vZUXaykjN&x(7M&b?U!;-Hi`KN~(A0}h2U=a9-~=5&6A($U1Bfb1x!?981N!8!cknuO#AR!b!CR4C#d$pLxx35+>>YiXaMBxZack9i`EtEU-*Dra zUW`(^5PF>|?K)NG%S-loAE=uk^(7?%yFPp|>^?+4tb(vW4gF#$kivFm8ybRepJ~$D zZX4DREQ3nC?Dw~(*Ywrc5B!iL-q^bP&|#|Z6o^R3}DAyGpYSi_FXOIqL1 z5OkEuP3`psOHL-w?c8k;UBm6Vz|>~s;FpvEwNEYvafeVqQlyv-G8{iz_MMU5UU&j( zHEKYZ?<4zhUr?Gm$sS<<9rnxA`=V z2#B0Oh4z>Uh})hD@q+Tx&ZMeBN=wU_H60lx3JVj3ybw1ZwTPhZ7GDP8@L@;Y!V6s2 z@P4sYvP)Wh6t@7JKoJLT3Jw(~;vA?}{>n3bW$Mnn{u_YEdATS7(@??lBI3(?H!^j* z3InbfwfnV#D2IFBST3A`2%RTCIEO(oV-qt4+d=p05I?d73-qY;`MuXu#?yZw*1}yY z64M?Be)o^no$f$PdoT{B8(Lquj$ioDvo3=}ObH^0+#qu4p3}iEYLKZbloV6@ zmD){Cqu3+xA?D8_ot9jV2q7gvxGdGf@V5;J<`XD5(sT*bb|P^wy~v{MdF+I}Tm^8{ zq@kTH@2>Kogj5|tUn#hPBaQu~06s%64pr)n)ZnjNG=2zhDOH9dC2#Qv8EQx|N;|%- zwY|OEN`Tt|>RO`#hcupvJ(^%X$$3LguDlska+xJTnn$J8!8B8@(hjpA^R&2g-DoR< zr=lLZI7Uk5%QZ;MH#Ro-ZwJ45lg{`BAS=!oamR3wQG5|~p=IAg!J%To@&n`g*VGfP zp3GYjfr}-;Icp(o?A?#E9>YSBT08l`&Fl#Vy$G0^>twMPkorcsbBDE?w`d3OtwO*7 z$=|;H)<-)@;pFF|cG+CoS$e8xUH6Ut+lMc_bv{=NVaq73Z`tc;$XUIt@h zd`+yB`==kWC-d|2P*cziMhoZw36m|js|o8U$Gk!?!Fzs%)*aj;Fj2DWe-v1l0x)c@ z1WI%j(CYJ)@~Rj&l4|>caOR@7rd9hN5$Cn36G@#|8tSV7jg_?DrY0t5mFqxvF)4gR zZ0IR@aB462F_hH>%HZQghU|b0CD+>@zDKTw<;Z?otffl=$4O`~t z9yj#{k*IoTa^V44qTB+dcg}ys6V<_;u&~ul!}|uu;*9lyM5Wx51n?}z�w?NheIuWP@D;4Y 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 z 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 给出两个åºåˆ— + +# 106.从中åºä¸ŽåŽåºé历åºåˆ—æž„é€ äºŒå‰æ ‘ + +æ ¹æ®ä¸€æ£µæ ‘的中åºé历与åŽåºéåŽ†æž„é€ äºŒå‰æ ‘。 + +注æ„: +ä½ å¯ä»¥å‡è®¾æ ‘中没有é‡å¤çš„元素。 + +例如,给出 + +中åºé历 inorder = [9,3,15,20,7] +åŽåºé历 postorder = [9,15,7,20,3] +è¿”å›žå¦‚ä¸‹çš„äºŒå‰æ ‘: + + + ## æ€è·¯ -首先回忆一下如何根æ®ä¸¤ä¸ªé¡ºåºæž„é€ ä¸€ä¸ªå”¯ä¸€çš„äºŒå‰æ ‘,相信ç†è®ºçŸ¥è¯†å¤§å®¶åº”该都清楚,就是以åŽåºæ•°ç»„最åŽä¸€ä¸ªå…ƒç´ ä¸ºåˆ‡å‰²ç‚¹ï¼Œå…ˆåˆ‡ä¸­åºæ•°ç»„,根æ®ä¸­åºæ•°ç»„,å过æ¥åœ¨åˆ‡åŽåºæ•°ç»„ã€‚ä¸€å±‚ä¸€å±‚åˆ‡ä¸‹åŽ»ï¼Œæ¯æ¬¡åŽåºæ•°ç»„最åŽä¸€ä¸ªå…ƒç´ å°±æ˜¯èŠ‚ç‚¹å…ƒç´ ã€‚ +首先回忆一下如何根æ®ä¸¤ä¸ªé¡ºåºæž„é€ ä¸€ä¸ªå”¯ä¸€çš„äºŒå‰æ ‘,相信ç†è®ºçŸ¥è¯†å¤§å®¶åº”该都清楚,就是以 åŽåºæ•°ç»„的最åŽä¸€ä¸ªå…ƒç´ ä¸ºåˆ‡å‰²ç‚¹ï¼Œå…ˆåˆ‡ä¸­åºæ•°ç»„,根æ®ä¸­åºæ•°ç»„,å过æ¥åœ¨åˆ‡åŽåºæ•°ç»„ã€‚ä¸€å±‚ä¸€å±‚åˆ‡ä¸‹åŽ»ï¼Œæ¯æ¬¡åŽåºæ•°ç»„最åŽä¸€ä¸ªå…ƒç´ å°±æ˜¯èŠ‚ç‚¹å…ƒç´ ã€‚ 如果让我们肉眼看两个åºåˆ—ï¼Œç”»ä¸€é¢—äºŒå‰æ ‘çš„è¯ï¼Œåº”该分分钟都å¯ä»¥ç”»å‡ºæ¥ã€‚ æµç¨‹å¦‚图: - 那么代ç åº”该怎么写呢? -说é“一层一层切割,就应该想到了递归。 +说到一层一层切割,就应该想到了递归。 æ¥çœ‹ä¸€ä¸‹ä¸€å…±åˆ†å‡ æ­¥ï¼š @@ -22,7 +38,7 @@ https://leetcode-cn.com/problems/construct-binary-tree-from-inorder-and-postorde * 第二步:如果ä¸ä¸ºç©ºï¼Œé‚£ä¹ˆå–åŽåºæ•°ç»„最åŽä¸€ä¸ªå…ƒç´ ä½œä¸ºèŠ‚ç‚¹å…ƒç´ ã€‚ -* 第三步:找到åŽåºæ•°ç»„最åŽä¸€ä¸ªå…ƒç´ åœ¨åŽåºæ•°ç»„çš„ä½ç½®ï¼Œä½œä¸ºåˆ‡å‰²ç‚¹ +* 第三步:找到åŽåºæ•°ç»„最åŽä¸€ä¸ªå…ƒç´ åœ¨ä¸­åºæ•°ç»„çš„ä½ç½®ï¼Œä½œä¸ºåˆ‡å‰²ç‚¹ * ç¬¬å››æ­¥ï¼šåˆ‡å‰²ä¸­åºæ•°ç»„,切æˆä¸­åºå·¦æ•°ç»„和中åºå³æ•°ç»„ (顺åºåˆ«æžåäº†ï¼Œä¸€å®šæ˜¯å…ˆåˆ‡ä¸­åºæ•°ç»„) @@ -35,24 +51,26 @@ https://leetcode-cn.com/problems/construct-binary-tree-from-inorder-and-postorde ``` TreeNode* traversal (vector& inorder, vector& postorder) { + // 第一步 if (postorder.size() == 0) return NULL; - // åŽåºé历数组最åŽä¸€ä¸ªå…ƒç´ ï¼Œå°±æ˜¯å½“å‰çš„中间节点 + // 第二步:åŽåºé历数组最åŽä¸€ä¸ªå…ƒç´ ï¼Œå°±æ˜¯å½“å‰çš„中间节点 int rootValue = postorder[postorder.size() - 1]; TreeNode* root = new TreeNode(rootValue); // å¶å­èŠ‚ç‚¹ if (postorder.size() == 1) return root; - 找切割点 + // 第三步:找切割点 int delimiterIndex; for (delimiterIndex = 0; delimiterIndex < inorder.size(); delimiterIndex++) { if (inorder[delimiterIndex] == rootValue) break; } - åˆ‡å‰²ä¸­åºæ•°ç»„,得到 中åºå·¦æ•°ç»„和中åºå³æ•°ç»„ - 切割åŽåºæ•°ç»„,得到 åŽåºå·¦æ•°ç»„å’ŒåŽåºå³æ•°ç»„ + // ç¬¬å››æ­¥ï¼šåˆ‡å‰²ä¸­åºæ•°ç»„,得到 中åºå·¦æ•°ç»„和中åºå³æ•°ç»„ + // 第五步:切割åŽåºæ•°ç»„,得到 åŽåºå·¦æ•°ç»„å’ŒåŽåºå³æ•°ç»„ + // 第六步 root->left = traversal(中åºå·¦æ•°ç»„, åŽåºå·¦æ•°ç»„); root->right = traversal(中åºå³æ•°ç»„, åŽåºå³æ•°ç»„); @@ -60,11 +78,11 @@ https://leetcode-cn.com/problems/construct-binary-tree-from-inorder-and-postorde } ``` -难点大家应该å‘现了,如何切割呢,边界值找ä¸å¥½å¾ˆå®¹æ˜“乱套。 +**难点大家应该å‘现了,就是如何切割,以åŠè¾¹ç•Œå€¼æ‰¾ä¸å¥½å¾ˆå®¹æ˜“乱套。** 此时应该注æ„确定切割的标准,是左闭å³å¼€ï¼Œè¿˜æœ‰å·¦å¼€åˆé—­ï¼Œè¿˜æ˜¯å·¦é—­åˆé—­ï¼Œè¿™ä¸ªå°±æ˜¯ä¸å˜é‡ï¼Œè¦åœ¨é€’å½’ä¸­ä¿æŒè¿™ä¸ªä¸å˜é‡ã€‚ -在切割的过程中会产生四个区间,把æ¡ä¸å¥½ä¸å˜é‡çš„è¯ï¼Œä¸€ä¼šå·¦é—­å³å¼€ï¼Œä¸€ä¼šå·¦é—­åˆé—­ï¼Œå¿…è¦ä¹±å¥—ï¼ +**在切割的过程中会产生四个区间,把æ¡ä¸å¥½ä¸å˜é‡çš„è¯ï¼Œä¸€ä¼šå·¦é—­å³å¼€ï¼Œä¸€ä¼šå·¦é—­åˆé—­ï¼Œå¿…然乱套ï¼** 我在[æ•°ç»„ï¼šæ¯æ¬¡é‡åˆ°äºŒåˆ†æ³•,都是一看就会,一写就废](https://mp.weixin.qq.com/s/fCf5QbPDtE6SSlZ1yh_q8Q)å’Œ[数组:这个循环å¯ä»¥è½¬æ‡µå¾ˆå¤šäººï¼](https://mp.weixin.qq.com/s/KTPhaeqxbMK9CxHUUgFDmg)中都强调过循环ä¸å˜é‡çš„é‡è¦æ€§ï¼Œåœ¨äºŒåˆ†æŸ¥æ‰¾ä»¥åŠèžºæ—‹çŸ©é˜µçš„æ±‚è§£ä¸­ï¼ŒåšæŒå¾ªçޝä¸å˜é‡éžå¸¸é‡è¦ï¼Œæœ¬é¢˜ä¹Ÿæ˜¯ã€‚ @@ -77,17 +95,16 @@ https://leetcode-cn.com/problems/construct-binary-tree-from-inorder-and-postorde ``` - // 找到中åºé历的切割点 - int delimiterIndex; - for (delimiterIndex = 0; delimiterIndex < inorder.size(); delimiterIndex++) { - if (inorder[delimiterIndex] == rootValue) break; - } +// 找到中åºé历的切割点 +int delimiterIndex; +for (delimiterIndex = 0; delimiterIndex < inorder.size(); delimiterIndex++) { + if (inorder[delimiterIndex] == rootValue) break; +} - // 左闭å³å¼€åŒºé—´ - // [0, delimiterIndex) - vector leftInorder(inorder.begin(), inorder.begin() + delimiterIndex); - // [delimiterIndex + 1, end) - vector rightInorder(inorder.begin() + delimiterIndex + 1, inorder.end() ); +// 左闭å³å¼€åŒºé—´ï¼š[0, delimiterIndex) +vector leftInorder(inorder.begin(), inorder.begin() + delimiterIndex); +// [delimiterIndex + 1, end) +vector rightInorder(inorder.begin() + delimiterIndex + 1, inorder.end() ); ``` 接下æ¥å°±è¦åˆ‡å‰²åŽåºæ•°ç»„了。 @@ -96,7 +113,7 @@ https://leetcode-cn.com/problems/construct-binary-tree-from-inorder-and-postorde åŽåºæ•°ç»„的切割点怎么找? -åŽåºæ•°ç»„没有明确的切割元素æ¥è¿›è¡Œå·¦å³åˆ‡å‰²ï¼Œä¸æƒ³ä¸­åºæ•°ç»„有明确的切割左å³ï¼Œå·¦å³åˆ†å¼€å°±å¯ä»¥äº†ã€‚ +åŽåºæ•°ç»„没有明确的切割元素æ¥è¿›è¡Œå·¦å³åˆ‡å‰²ï¼Œä¸åƒä¸­åºæ•°ç»„有明确的切割点,切割点左å³åˆ†å¼€å°±å¯ä»¥äº†ã€‚ **此时有一个很é‡çš„ç‚¹ï¼Œå°±æ˜¯ä¸­åºæ•°ç»„大å°ä¸€å®šæ˜¯å’ŒåŽåºæ•°ç»„的大å°ç›¸åŒçš„(这是必然)。** @@ -105,28 +122,27 @@ https://leetcode-cn.com/problems/construct-binary-tree-from-inorder-and-postorde 代ç å¦‚下: ``` - // postorder èˆå¼ƒæœ«å°¾å…ƒç´  - postorder.resize(postorder.size() - 1); +// postorder èˆå¼ƒæœ«å°¾å…ƒç´ ï¼Œå› ä¸ºè¿™ä¸ªå…ƒç´ å°±æ˜¯ä¸­é—´èŠ‚ç‚¹ï¼Œå·²ç»ç”¨è¿‡äº† +postorder.resize(postorder.size() - 1); - // ä¾ç„¶å·¦é—­å³å¼€ï¼Œæ³¨æ„è¿™é‡Œä½¿ç”¨äº†å·¦ä¸­åºæ•°ç»„大å°ä½œä¸ºåˆ‡å‰²ç‚¹ - // [0, leftInorder.size) - vector leftPostorder(postorder.begin(), postorder.begin() + leftInorder.size()); - // [leftInorder.size(), end) - vector rightPostorder(postorder.begin() + leftInorder.size(), postorder.end()); +// 左闭å³å¼€ï¼Œæ³¨æ„è¿™é‡Œä½¿ç”¨äº†å·¦ä¸­åºæ•°ç»„大å°ä½œä¸ºåˆ‡å‰²ç‚¹ï¼š[0, leftInorder.size) +vector leftPostorder(postorder.begin(), postorder.begin() + leftInorder.size()); +// [leftInorder.size(), end) +vector rightPostorder(postorder.begin() + leftInorder.size(), postorder.end()); ``` -æ­¤æ—¶ï¼Œä¸­åºæ•°ç»„切æˆäº†å·¦ä¸­åºæ•°ç»„å’Œå³ä¸­åºæ•°ç»„,åŽåºæ•°ç»„切割æˆåºæ•°ç»„å’Œå³åŽåºæ•°ç»„。 +æ­¤æ—¶ï¼Œä¸­åºæ•°ç»„切æˆäº†å·¦ä¸­åºæ•°ç»„å’Œå³ä¸­åºæ•°ç»„,åŽåºæ•°ç»„切割æˆå·¦åŽåºæ•°ç»„å’Œå³åŽåºæ•°ç»„。 接下æ¥å¯ä»¥é€’归了,代ç å¦‚下: ``` - root->left = traversal(leftInorder, leftPostorder); - root->right = traversal(rightInorder, rightPostorder); +root->left = traversal(leftInorder, leftPostorder); +root->right = traversal(rightInorder, rightPostorder); ``` 完整代ç å¦‚下: -## C++ å®Œæ•´ä»£ç  +### C++å®Œæ•´ä»£ç  ``` class Solution { @@ -206,6 +222,7 @@ private: vector leftPostorder(postorder.begin(), postorder.begin() + leftInorder.size()); vector rightPostorder(postorder.begin() + leftInorder.size(), postorder.end()); + // 一下为日志 cout << "----------" << endl; cout << "leftInorder :"; @@ -244,11 +261,11 @@ public: }; ``` -**此时应该å‘çŽ°äº†ï¼Œå¦‚ä¸Šçš„ä»£ç æ€§èƒ½å¹¶ä¸å¥½ï¼Œåº”为æ¯å±‚递归定定义了新的vector,既耗时åˆè€—空间,但是上é¢çš„ä»£ç æ˜¯æœ€å¥½ç†è§£çš„,为了方便读者ç†è§£ï¼Œæ‰€ä»¥ç”¨å¦‚ä¸Šçš„ä»£ç æ¥è®²è§£ã€‚** +**此时应该å‘çŽ°äº†ï¼Œå¦‚ä¸Šçš„ä»£ç æ€§èƒ½å¹¶ä¸å¥½ï¼Œåº”为æ¯å±‚递归定定义了新的vector(就是数组),既耗时åˆè€—空间,但上é¢çš„ä»£ç æ˜¯æœ€å¥½ç†è§£çš„,为了方便读者ç†è§£ï¼Œæ‰€ä»¥ç”¨å¦‚ä¸Šçš„ä»£ç æ¥è®²è§£ã€‚** 下é¢ç»™å‡ºç”¨ä¸‹è¡¨ç´¢å¼•写出的代ç ç‰ˆæœ¬ï¼šï¼ˆæ€è·¯æ˜¯ä¸€æ ·çš„,åªä¸è¿‡ä¸ç”¨é‡å¤å®šä¹‰vectoräº†ï¼Œæ¯æ¬¡ç”¨ä¸‹è¡¨ç´¢å¼•æ¥åˆ†å‰²ï¼‰ -## C++最终优化版本 +### C++优化版本 ``` class Solution { private: @@ -368,7 +385,24 @@ public: # 105. 从å‰åºä¸Žä¸­åºé历åºåˆ—æž„é€ äºŒå‰æ ‘ -åŒæ ·çš„é“ç† +æ ¹æ®ä¸€æ£µæ ‘çš„å‰åºé历与中åºéåŽ†æž„é€ äºŒå‰æ ‘。 + +注æ„: +ä½ å¯ä»¥å‡è®¾æ ‘中没有é‡å¤çš„元素。 + +例如,给出 + +å‰åºé历 preorder = [3,9,20,15,7] +中åºé历 inorder = [9,3,15,20,7] +è¿”å›žå¦‚ä¸‹çš„äºŒå‰æ ‘: + + + +## æ€è·¯ + +本题和106是一样的é“ç†ã€‚ + +我就直接给出代ç äº†ã€‚ 带日志的版本C++代ç å¦‚下: (**带日志的版本仅用于调试,ä¸è¦åœ¨leetcode上æäº¤ï¼Œä¼šè¶…æ—¶**) @@ -444,9 +478,8 @@ public: }; ``` -105. 从å‰åºä¸Žä¸­åºé历åºåˆ—æž„é€ äºŒå‰æ ‘,最åŽç‰ˆæœ¬ï¼š +105.从å‰åºä¸Žä¸­åºé历åºåˆ—æž„é€ äºŒå‰æ ‘,最åŽç‰ˆæœ¬ï¼ŒC++代ç ï¼š -C++代ç ï¼š ``` class Solution { private: @@ -493,3 +526,45 @@ public: } }; ``` + +# æ€è€ƒé¢˜ + +å‰åºå’Œä¸­åºå¯ä»¥å”¯ä¸€ç¡®å®šä¸€é¢—äºŒå‰æ ‘。 + +åŽåºå’Œä¸­åºå¯ä»¥å”¯ä¸€ç¡®å®šä¸€é¢—äºŒå‰æ ‘。 + +那么å‰åºå’ŒåŽåºå¯ä¸å¯ä»¥å”¯ä¸€ç¡®å®šä¸€é¢—äºŒå‰æ ‘呢? + +**å‰åºå’ŒåŽåºä¸èƒ½å”¯ä¸€ç¡®å®šä¸€é¢—äºŒå‰æ ‘ï¼**,因为没有中åºé历无法确定左å³éƒ¨åˆ†ï¼Œä¹Ÿå°±æ˜¯æ— æ³•分割。 + +举一个例å­ï¼š + + + +tree1 çš„å‰åºé历是[1 2 3], åŽåºé历是[3 2 1]。 + +tree2 çš„å‰åºé历是[1 2 3], åŽåºé历是[3 2 1]。 + +那么tree1 å’Œ tree2 çš„å‰åºå’ŒåŽåºå®Œå…¨ç›¸åŒï¼Œè¿™æ˜¯ä¸€æ£µæ ‘ä¹ˆï¼Œå¾ˆæ˜Žæ˜¾æ˜¯ä¸¤æ£µæ ‘ï¼ + +所以å‰åºå’ŒåŽåºä¸èƒ½å”¯ä¸€ç¡®å®šä¸€é¢—äºŒå‰æ ‘ï¼ + +# 总结 + +之剿ˆ‘ä»¬è®²çš„äºŒå‰æ ‘题目都是å„ç§éåŽ†äºŒå‰æ ‘ï¼Œè¿™æ¬¡å¼€å§‹æž„é€ äºŒå‰æ ‘了,æ€è·¯å…¶å®žæ¯”较简å•,但是真正代ç å®žçŽ°å‡ºæ¥å¹¶ä¸å®¹æ˜“。 + +所以è¦é¿å…眼高手低,è¸å®žçš„æŠŠä»£ç å†™å‡ºæ¥ã€‚ + +æˆ‘åŒæ—¶ç»™å‡ºäº†æ·»åŠ æ—¥å¿—çš„ä»£ç ç‰ˆæœ¬ï¼Œå› ä¸ºè¿™ç§é¢˜ç›®æ˜¯ä¸å¤ªå®¹æ˜“写出æ¥è°ƒä¸€è°ƒå°±èƒ½è¿‡çš„ï¼Œæ‰€ä»¥ä¸€å®šè¦æŠŠæµç¨‹æ—¥å¿—打出æ¥ï¼Œçœ‹çœ‹ç¬¦ä¸ç¬¦åˆè‡ªå·±çš„æ€è·¯ã€‚ + +大家é‡åˆ°è¿™ç§é¢˜ç›®çš„æ—¶å€™ï¼Œä¹Ÿè¦å­¦ä¼šæ‰“日志æ¥è°ƒè¯•(如何打日志有时候也是个技术活),ä¸è¦è„‘动模拟,脑动模拟很容易越想越乱。 + +æœ€åŽæˆ‘还给出了为什么å‰åºå’Œä¸­åºå¯ä»¥å”¯ä¸€ç¡®å®šä¸€é¢—äºŒå‰æ ‘,åŽåºå’Œä¸­åºå¯ä»¥å”¯ä¸€ç¡®å®šä¸€é¢—äºŒå‰æ ‘,而å‰åºå’ŒåŽåºå´ä¸è¡Œã€‚ + +è®¤çœŸç ”ç©¶å®Œæœ¬ç¯‡ï¼Œç›¸ä¿¡å¤§å®¶å¯¹äºŒå‰æ ‘的构造会清晰很多。 + +如果学到了,就赶紧转å‘给身边需è¦çš„åŒå­¦å§ï¼ + +åŠ ä¸ªæ²¹ï¼ + + diff --git a/problems/0111.äºŒå‰æ ‘çš„æœ€å°æ·±åº¦.md b/problems/0111.äºŒå‰æ ‘çš„æœ€å°æ·±åº¦.md index a4edce23..eebfd76e 100644 --- a/problems/0111.äºŒå‰æ ‘çš„æœ€å°æ·±åº¦.md +++ b/problems/0111.äºŒå‰æ ‘çš„æœ€å°æ·±åº¦.md @@ -165,20 +165,17 @@ public: queue que; que.push(root); while(!que.empty()) { - int size = que.size(); + int size = que.size(); depth++; // è®°å½•æœ€å°æ·±åº¦ - int flag = 0; for (int i = 0; i < size; i++) { TreeNode* node = que.front(); que.pop(); if (node->left) que.push(node->left); if (node->right) que.push(node->right); if (!node->left && !node->right) { // 当左å³å­©å­éƒ½ä¸ºç©ºçš„æ—¶å€™ï¼Œè¯´æ˜Žæ˜¯æœ€ä½Žç‚¹çš„一层了,退出 - flag = 1; - break; + return depth; } } - if (flag == 1) break; } return depth; } diff --git a/problems/0141.环形链表.md b/problems/0141.环形链表.md new file mode 100644 index 00000000..4198ba4a --- /dev/null +++ b/problems/0141.环形链表.md @@ -0,0 +1,45 @@ + +## æ€è·¯ + +å¯ä»¥ä½¿ç”¨å¿«æ…¢æŒ‡é’ˆæ³•, 分别定义 fast å’Œ slow指针,从头结点出å‘,fastæŒ‡é’ˆæ¯æ¬¡ç§»åŠ¨ä¸¤ä¸ªèŠ‚ç‚¹ï¼ŒslowæŒ‡é’ˆæ¯æ¬¡ç§»åŠ¨ä¸€ä¸ªèŠ‚ç‚¹ï¼Œå¦‚æžœ fast å’Œ slowæŒ‡é’ˆåœ¨é€”ä¸­ç›¸é‡ ï¼Œè¯´æ˜Žè¿™ä¸ªé“¾è¡¨æœ‰çŽ¯ã€‚ + +为什么fast 走两个节点,slow走一个节点,有环的è¯ï¼Œä¸€å®šä¼šåœ¨çŽ¯å†…ç›¸é‡å‘¢ï¼Œè€Œä¸æ˜¯æ°¸è¿œçš„错开呢? + +首先第一点: **fast指针一定先进入环中,如果fast 指针和slow指针相é‡çš„è¯ï¼Œä¸€å®šæ˜¯åœ¨çŽ¯ä¸­ç›¸é‡ï¼Œè¿™æ˜¯æ¯‹åº¸ç½®ç–‘的。** + +那么æ¥çœ‹ä¸€ä¸‹ï¼Œ**为什么fast指针和slow指针一定会相é‡å‘¢ï¼Ÿ** + +å¯ä»¥ç”»ä¸€ä¸ªçŽ¯ï¼Œç„¶åŽè®© fast指针在任æ„一个节点开始追赶slow指针。 + +会å‘çŽ°æœ€ç»ˆéƒ½æ˜¯è¿™ç§æƒ…况, 如下图: + + + +fastå’Œslowå„自å†èµ°ä¸€æ­¥ï¼Œ fastå’Œslow就相é‡äº† + +这是因为fast是走两步,slow是走一步,**其实相对于slowæ¥è¯´ï¼Œfast是一个节点一个节点的é è¿‘slowçš„**,所以fast一定å¯ä»¥å’Œslowé‡åˆã€‚ + + +## C++代ç å¦‚下 + +``` +class Solution { +public: + bool hasCycle(ListNode *head) { + ListNode* fast = head; + ListNode* slow = head; + while(fast != NULL && fast->next != NULL) { + slow = slow->next; + fast = fast->next->next; + // 快慢指针相é‡ï¼Œè¯´æ˜Žæœ‰çޝ + if (slow == fast) return true; + } + return false; + } +}; +``` +## 扩展 + +åšå®Œè¿™é“题目,å¯ä»¥åœ¨åšåš142.环形链表II,ä¸ä»…ä»…è¦æ‰¾çŽ¯ï¼Œè¿˜è¦æ‰¾çŽ¯çš„å…¥å£ã€‚ + +142.环形链表II题解:[链表:环找到了,那入å£å‘¢ï¼Ÿ](https://mp.weixin.qq.com/s/_QVP3IkRZWx9zIpQRgajzA)