From 3bd416600ea5b86c702f8a47440cc450a3f3511d Mon Sep 17 00:00:00 2001 From: Yudong Jin Date: Wed, 1 May 2024 05:56:54 +0800 Subject: [PATCH] translation: Add the initial translation of chapter "divide and conquer" (#1322) * Add the initial translation of chapter "divide and conquer" * Update index.md * Update summary.md * Update index.md * Update summary.md --- .../binary_search_recur.png | Bin 0 -> 16844 bytes .../binary_search_recur.md | 45 ++++++++ .../build_tree_division_pointers.png | Bin 0 -> 15362 bytes .../build_tree_example.png | Bin 0 -> 13759 bytes .../build_tree_preorder_inorder_division.png | Bin 0 -> 25136 bytes .../built_tree_overall.png | Bin 0 -> 25815 bytes .../built_tree_step1.png | Bin 0 -> 10404 bytes .../built_tree_step2.png | Bin 0 -> 10758 bytes .../built_tree_step3.png | Bin 0 -> 12042 bytes .../built_tree_step4.png | Bin 0 -> 12462 bytes .../built_tree_step5.png | Bin 0 -> 12587 bytes .../built_tree_step6.png | Bin 0 -> 13876 bytes .../built_tree_step7.png | Bin 0 -> 13985 bytes .../built_tree_step8.png | Bin 0 -> 15233 bytes .../built_tree_step9.png | Bin 0 -> 15889 bytes .../build_binary_tree_problem.md | 99 ++++++++++++++++++ .../divide_and_conquer_bubble_sort.png | Bin 0 -> 24306 bytes .../divide_and_conquer_merge_sort.png | Bin 0 -> 25855 bytes .../divide_and_conquer_parallel_computing.png | Bin 0 -> 15428 bytes .../divide_and_conquer.md | 91 ++++++++++++++++ .../hanota_divide_and_conquer.png | Bin 0 -> 32200 bytes .../hanota_problem.assets/hanota_example.png | Bin 0 -> 12261 bytes .../hanota_problem.assets/hanota_f1_step1.png | Bin 0 -> 5732 bytes .../hanota_problem.assets/hanota_f1_step2.png | Bin 0 -> 9103 bytes .../hanota_problem.assets/hanota_f2_step1.png | Bin 0 -> 6150 bytes .../hanota_problem.assets/hanota_f2_step2.png | Bin 0 -> 9400 bytes .../hanota_problem.assets/hanota_f2_step3.png | Bin 0 -> 11972 bytes .../hanota_problem.assets/hanota_f2_step4.png | Bin 0 -> 14501 bytes .../hanota_problem.assets/hanota_f3_step1.png | Bin 0 -> 9571 bytes .../hanota_problem.assets/hanota_f3_step2.png | Bin 0 -> 10201 bytes .../hanota_problem.assets/hanota_f3_step3.png | Bin 0 -> 13132 bytes .../hanota_problem.assets/hanota_f3_step4.png | Bin 0 -> 15960 bytes .../hanota_recursive_tree.png | Bin 0 -> 18093 bytes .../hanota_problem.md | 97 +++++++++++++++++ en/docs/chapter_divide_and_conquer/index.md | 9 ++ en/docs/chapter_divide_and_conquer/summary.md | 11 ++ 36 files changed, 352 insertions(+) create mode 100644 en/docs/chapter_divide_and_conquer/binary_search_recur.assets/binary_search_recur.png create mode 100644 en/docs/chapter_divide_and_conquer/binary_search_recur.md create mode 100644 en/docs/chapter_divide_and_conquer/build_binary_tree_problem.assets/build_tree_division_pointers.png create mode 100644 en/docs/chapter_divide_and_conquer/build_binary_tree_problem.assets/build_tree_example.png create mode 100644 en/docs/chapter_divide_and_conquer/build_binary_tree_problem.assets/build_tree_preorder_inorder_division.png create mode 100644 en/docs/chapter_divide_and_conquer/build_binary_tree_problem.assets/built_tree_overall.png create mode 100644 en/docs/chapter_divide_and_conquer/build_binary_tree_problem.assets/built_tree_step1.png create mode 100644 en/docs/chapter_divide_and_conquer/build_binary_tree_problem.assets/built_tree_step2.png create mode 100644 en/docs/chapter_divide_and_conquer/build_binary_tree_problem.assets/built_tree_step3.png create mode 100644 en/docs/chapter_divide_and_conquer/build_binary_tree_problem.assets/built_tree_step4.png create mode 100644 en/docs/chapter_divide_and_conquer/build_binary_tree_problem.assets/built_tree_step5.png create mode 100644 en/docs/chapter_divide_and_conquer/build_binary_tree_problem.assets/built_tree_step6.png create mode 100644 en/docs/chapter_divide_and_conquer/build_binary_tree_problem.assets/built_tree_step7.png create mode 100644 en/docs/chapter_divide_and_conquer/build_binary_tree_problem.assets/built_tree_step8.png create mode 100644 en/docs/chapter_divide_and_conquer/build_binary_tree_problem.assets/built_tree_step9.png create mode 100644 en/docs/chapter_divide_and_conquer/build_binary_tree_problem.md create mode 100644 en/docs/chapter_divide_and_conquer/divide_and_conquer.assets/divide_and_conquer_bubble_sort.png create mode 100644 en/docs/chapter_divide_and_conquer/divide_and_conquer.assets/divide_and_conquer_merge_sort.png create mode 100644 en/docs/chapter_divide_and_conquer/divide_and_conquer.assets/divide_and_conquer_parallel_computing.png create mode 100644 en/docs/chapter_divide_and_conquer/divide_and_conquer.md create mode 100644 en/docs/chapter_divide_and_conquer/hanota_problem.assets/hanota_divide_and_conquer.png create mode 100644 en/docs/chapter_divide_and_conquer/hanota_problem.assets/hanota_example.png create mode 100644 en/docs/chapter_divide_and_conquer/hanota_problem.assets/hanota_f1_step1.png create mode 100644 en/docs/chapter_divide_and_conquer/hanota_problem.assets/hanota_f1_step2.png create mode 100644 en/docs/chapter_divide_and_conquer/hanota_problem.assets/hanota_f2_step1.png create mode 100644 en/docs/chapter_divide_and_conquer/hanota_problem.assets/hanota_f2_step2.png create mode 100644 en/docs/chapter_divide_and_conquer/hanota_problem.assets/hanota_f2_step3.png create mode 100644 en/docs/chapter_divide_and_conquer/hanota_problem.assets/hanota_f2_step4.png create mode 100644 en/docs/chapter_divide_and_conquer/hanota_problem.assets/hanota_f3_step1.png create mode 100644 en/docs/chapter_divide_and_conquer/hanota_problem.assets/hanota_f3_step2.png create mode 100644 en/docs/chapter_divide_and_conquer/hanota_problem.assets/hanota_f3_step3.png create mode 100644 en/docs/chapter_divide_and_conquer/hanota_problem.assets/hanota_f3_step4.png create mode 100644 en/docs/chapter_divide_and_conquer/hanota_problem.assets/hanota_recursive_tree.png create mode 100644 en/docs/chapter_divide_and_conquer/hanota_problem.md create mode 100644 en/docs/chapter_divide_and_conquer/index.md create mode 100644 en/docs/chapter_divide_and_conquer/summary.md diff --git a/en/docs/chapter_divide_and_conquer/binary_search_recur.assets/binary_search_recur.png b/en/docs/chapter_divide_and_conquer/binary_search_recur.assets/binary_search_recur.png new file mode 100644 index 0000000000000000000000000000000000000000..7811a4ce83ac728524f08d842016697606eb42ad GIT binary patch literal 16844 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 literal 0 HcmV?d00001 diff --git a/en/docs/chapter_divide_and_conquer/binary_search_recur.md b/en/docs/chapter_divide_and_conquer/binary_search_recur.md new file mode 100644 index 000000000..19d0b8aac --- /dev/null +++ b/en/docs/chapter_divide_and_conquer/binary_search_recur.md @@ -0,0 +1,45 @@ +# Divide and conquer search strategy + +We have learned that search algorithms fall into two main categories. + +- **Brute-force search**: It is implemented by traversing the data structure, with a time complexity of $O(n)$. +- **Adaptive search**: It utilizes a unique data organization form or prior information, and its time complexity can reach $O(\log n)$ or even $O(1)$. + +In fact, **search algorithms with a time complexity of $O(\log n)$ are usually based on the divide-and-conquer strategy**, such as binary search and trees. + +- Each step of binary search divides the problem (searching for a target element in an array) into a smaller problem (searching for the target element in half of the array), continuing until the array is empty or the target element is found. +- Trees represent the divide-and-conquer idea, where in data structures like binary search trees, AVL trees, and heaps, the time complexity of various operations is $O(\log n)$. + +The divide-and-conquer strategy of binary search is as follows. + +- **The problem can be divided**: Binary search recursively divides the original problem (searching in an array) into subproblems (searching in half of the array), achieved by comparing the middle element with the target element. +- **Subproblems are independent**: In binary search, each round handles one subproblem, unaffected by other subproblems. +- **The solutions of subproblems do not need to be merged**: Binary search aims to find a specific element, so there is no need to merge the solutions of subproblems. When a subproblem is solved, the original problem is also solved. + +Divide-and-conquer can enhance search efficiency because brute-force search can only eliminate one option per round, **whereas divide-and-conquer can eliminate half of the options**. + +### Implementing binary search based on divide-and-conquer + +In previous chapters, binary search was implemented based on iteration. Now, we implement it based on divide-and-conquer (recursion). + +!!! question + + Given an ordered array `nums` of length $n$, where all elements are unique, please find the element `target`. + +From a divide-and-conquer perspective, we denote the subproblem corresponding to the search interval $[i, j]$ as $f(i, j)$. + +Starting from the original problem $f(0, n-1)$, perform the binary search through the following steps. + +1. Calculate the midpoint $m$ of the search interval $[i, j]$, and use it to eliminate half of the search interval. +2. Recursively solve the subproblem reduced by half in size, which could be $f(i, m-1)$ or $f(m+1, j)$. +3. Repeat steps `1.` and `2.`, until `target` is found or the interval is empty and returns. + +The diagram below shows the divide-and-conquer process of binary search for element $6$ in an array. + +![The divide-and-conquer process of binary search](binary_search_recur.assets/binary_search_recur.png) + +In the implementation code, we declare a recursive function `dfs()` to solve the problem $f(i, j)$: + +```src +[file]{binary_search_recur}-[class]{}-[func]{binary_search} +``` diff --git a/en/docs/chapter_divide_and_conquer/build_binary_tree_problem.assets/build_tree_division_pointers.png b/en/docs/chapter_divide_and_conquer/build_binary_tree_problem.assets/build_tree_division_pointers.png new file mode 100644 index 0000000000000000000000000000000000000000..51f02fa6109869d475ad6469f9c71688d8085021 GIT binary patch literal 15362 zcmd73Ra6~K@Gm-B*toj|2?PlNf?I+I2p$L?*d$mW5Ih9kNN|_n?m>e)8+Q%C-Q8U; z`TpnWtn+Z!xi7b0W_qTpx~jUSde*PH0#uY_urVkw006+2la+c004R^Q;9)e#c_&n`rl&NJ6?630RaKR!opRp2T@rYGm96^&CP-l{;8v9d2^F{ z@)+*@9o7wpx3_o1o_#}`*N!$eclY;W`#Z8qRJGVDCJv}|EtE*E} zQ`gtmOG`^*V`Ia^!*OwOFO&u@FE7*6(>ppk!o$MG$H$YBl4N9LT3cKH{P~lTk}@+h z)78}#6dW8K6;)AQ9upH&Q&ZF5-(Oc(cW`ikoJCeuRu&W%X7r~Q7Z>N|=BB2m#wR3* zi;M5=?PX+SEbcE%PEKZKW|owcWM^mp@bQ_Oo2#v@O)uR}N=&@Ex~gp1pP!!(4GsP9 z;lug)d1KdMdwcuu-@iY8{CIJ3(a_LfVPWz5_3N#zt)Zczqobp~zP_BC94RTOxV)|W z{QSts$j!~ojg5_?lUrwJ=lAd5zkBy?Wo4!G&rnNC%jwnC{L1C}`nq4j>gedGj*iaN z?X9b;Ye-0llcS@&y!^@4UDfP`va+&`-$Hs{S42d_&i>8l)R}MRv0LQw!R5ufjH#xk zCQnb#BP*ftovW_JLAd&;>i>J=t74J2y zE#0n6x%9Pt?QFX0EW4q5{T^(6lF>b5VM^>E#=y$DMwXa+@EL^&_9@TXm zT68ps#RUJ^+sPW-ncCj+2u++hIw%?2t65pF^qz|8Kz=FCJurG6KXj^7wx8C&t!X0qyPaYn*mlp}1!siOD_nQzy47~a0#vow#Kof6O-qV*lj9qhIL z(R)4A_}#bR*hka4V&!&oNiKOJF~8h6KT|g=`83+{&8I)%$wR+}`t=gp9m@;fLg~c; zK%h-dN?hG(dbh>%@yh@ZX?OXg`QU%I|91_3z9{w|W%olRzWSqo{9m>ouLSV^<8$m` z3H`t1@sG@KDAb11-;f!DeUh+wNra8V6Qu~v( zOB(E{xW?qcePw|<`d$z?=c+xP$dA2#3DrS^=*IujqZYY~MLNMCx?8{8R}U1yx**Sx z!knT^BD|WI0<-*!vi%!WDBsHh54BWs6dw-9eX`03T8!31<+ZR*&+CLxd+$bH@KdbT z-}ImS63J0bPEb)YN^pfg1j%9DTqke zMFHfnl~84LF;Z!bAEOS${8{gnwg_M_lXg0g^}{gd)A-J^j~aNkJ}M{L%UF=TrbQN9hjpY~)N$bF}-;Z`cj zc7R+vu#SW|yaHxIFUSy)>voL5%%79cn~54P*#u?zT;ma%ChAYX+l1j5z_l6mTn3^t z>O;_-@KCw2{{j;*kdEQWgO=@MDZ|pTt_n35gGimK!14)0*dQk#Wr)i4#{+%G1hh8J zP*L^Nw9Xz`1>LtrVsz(3n6Fe=U;KonlTrG&4~x;irMLOS<4gAQO9TE&rxW^{Z|orf zu}dhM(+7!4KYn^Ar$1S4Xog~ZUQm>KxNB1K3w#(t2i;z-JM1Xnsm-HKc8coM;LN=F zd_*y=r_H7=V}tygKF%9;HcgC1caP81fP2VzICy({Pkg8_2>m=kD+uco>0zm;jb-e+ zWSN8;13$aQ_4-EJ4Xf#Vtcx!|t~X#s4$09s;B~HZePe<{x)iw;lWjO-BS-gpIeD|6N*jygrVEqUqNB&91=&fYfUVH z_HC91#ik3u8lr~2euj9i0bE!)jAjRg$M~&Md?^rxI8p0(x zm=^=FcncS&Tf|y0R$;QIf>xhofRik$TfF73!yum_>MOtDpNE5k3~#nA*Lk)(v&W6Gq|7lD02<^UJuv?_~;}0(}B+J+}+{Q z5@s5lMWDyLBlfg@D2r>%aD4|PuXsL2PS6Bo}nu5XsiyYKo7 zMF{<$uz{$pywWclYJm!{03XSt1*mET_=?{5jGdmc*4`l5lioc&Q7i1wdZ7ivigX1p zvhKw!Qjkl2BiT(hxERufo#$UWY`{V9qw7X-`6c&FNsI{Dl=|#-kccP8v)a~7Up*a$ zpR~QB?bDd#n#6@~Zdf2xpCh~(Hb4(gxqg3Cp4)W>2|$on3kvnFot}MWLJJd(C)V7n z&L$dsEz1@C>)#vaxI`L2ulW#dMvjmB)rrx-wVPQITa3jw9njdQSk`x!I~RPNkityi zBDd5bbe?1zsG^$^av*#s9tAy3pa|inFLPmm-d4}lVi}PRKlH_cb3UQ5K(Y32_yGa6 z&n2Fy?0-?qmtyKU?X-2Z%XnNAPZ&8QgCW;9t?(c+q8QgxjN4TyZkRpAW|g4g{x#EJ z%Ru-Hxtl54ND#Pn_uR(F=?n#F0%RfsacDVhzc!koSQ~}SimAz=4*%>gW2yg8AFi+P zhX3jBqoRPzURG@_7S-=wMos#9&jh!b5xzt5h(GtAW2sH#gda_4Wx{~S;QwXNMET)W z4we@GO^O>%*eFP$)4s$P0jo?z;`E3E9kXLZJ&cpwcwk`w+k1!pgP_Wr`(#yT4$j}Sq#&wb)>i?3B^pm?Nv_Z#wcGb|ISsdI8_Y8}AVmZP-C| zxj3GdBI>ZY)m(+M;@E`8U+2-&dj(?d;sp z>{M8O$!&p6Aqy}fmT5RA@GVn>r^!$BIM8OQQbjM)Chfe;UP#F^APB@pK!e|7H4JZU zO_7|z)-@?j){~`{msckbEhZTb&wNZ?7KYm?MF=fV5xT zGWGf`bes%EF=^K&UcWTSJoazK3~t_r!4p5)HzAggDoaYc5@?&%y=&uskYr1mC<6Bv zcWUa8`tt^WUHf)vMeA2L2KliQA=FC|jyT-}El*`(IgMIe?gz9Ke31`M{c+xa|uxyA#pi0_!?&iynl8-Bn zHFJLwi~3EHa}x)S#jGe22GV@K4N3yTa&q1vDx3jK#FW7%DxM+Kx&p9<2+SP>f~y%2 z65ef!2HOG>6??Q$?{(mHK;th_R8jD+UXUxS!Kn(~a>-dLC5X^|uH!-PhBo^S7tV|u z*AHAPf$-7O(B^sR>&9EnRnVT@Nrub8-v}aD7K<*(H9eq%v*%A#PJ#jO+{6JdF|z)< z6d{2aeuJBo-$>TqeH@jROi_d~ASsCWg#2@Dilfz=0%kH~9Ha5PG54!k2gjjY8)2|{ zeVd(=pDk>AI8uWCJVzOJfu^YAz-O`H1Au-h#Eia&!i$Fz$LznS)#x0E zk<1?T(CsfXh;UnNu^O3sy>W>Ls{sWA7t{D+sLb6Lfb`)w!Q7_!iR1l-Fn-M`YH4tS z4DJ}@l89{ZuL&Io@-^sLq*xv`XcxvsAl8DM@*4I^p_HPeBjZ6m>`7ZAQ4vIR@Ng0s zn0r0o9A*nc$7zsVV%4)y{Fa%&#|~A}Qm95uVDI~Hh?rm43e3>qC`w!$IMpBK}iDp0Eq^o$o~ss}h3 zfAFxbA(to`KS+^!6miRJl4u?9H~$9Kf5!@W^yfuKLd!}ot=wjDM|w^(Eco}iKb&>8JUcRB?Qre!TQR-_G)@+1_LCb zZl#EbufYylbcD=OdIw_=GFz%#n!G!~UNks?6BCHYQ&`geb(%qbttBqhI|pd0UWzv? zY@?tNALyborQ4RcwKjN#kh>)Lg*pt_{?5 z{5Uz+IlPuoIkTQ1tuAx^LYzc#Wx&kf>M%17@b3hFcJbS}U&1#IxZSti$ElkzdCqMJz3|u@10(m3B2(&S!mj_oYev|gNR;Su;r^8sOd(aEh_l1VNP*X7Fn6eMgBPwsbmw8 zXRmBDRzKbS6BQuoB0kz;<+=K-Vjrt=?;|f_#CFYwW}E-#zcAPLN^@HSI>3{oZVR+T zGE%QEScX3z);Fz)pj7`UmypmFVfGBT1pZiGv^$CvAdAFJ88a1ogjuCt9)-d$Y zJznWeOty6BLlT2@P8mI9Oxs6$}fueyxjrxMIGboLCs&ObyHB-sl3(f?HNOEf?`C(#)CD}le8GA~;2Fv5rt>uSSF#Rh`48dn zTUV?h9y=hVcAYnH%^c{XqvgBHBIt7)gC4SA&K(MfXjcDL1cccjlOXPsvCi)&iS>Nb zOJ5`IDA3bN`P0Xq@_gX2=Ena8^68WQli$h}{KS@brKcRAHD}-Ee9Qk4ED-n$+iDzk zh&iVq?HTq@$VF)yP{SemGYnzh8+W;6<1q zmfdUw7f8hK7x=v;5G2CmT=Uxv82LOSTGUtPF-^Y1HpOvV`KV!G(Q{sJlFPhk=N~{m zj8kHe&z^Oki~Kbngi|53g}cj=2g=#?=nU(;hAWLFK+X&a+zrbMl3TQhWT8AP@4iUr zsp9b|P4XJX`14lrsn{>jE|VXHaLfvQXjV75(|O!iEOZmcR*a0G_*pOs(+f}xW3bs)#vg(ZVbhNxP=1C8PF2J zSX}~M0yp2Msj1$bK2I~XdJeS=q(WKNwSUbA;}jmc<#KKc53N;5N(JK$UQD5u?l+ZW zW}d8GJLpLjoov**r@L=(q-nU^#7AY0xsx=JTp2|D#1u1pg_15k-Wd}}&sjF+_%_Rq zeA+uwzFJ+!^C-#QjfqSkYeN>)l^0vCcD0|t0*j3T8{xHeA zU3LAKb**4NboM$)uV8NS_?f_qYIn>nzVA=*NMMm~L(+|Z629%gBZ`p>$Ng4(%d?e! zf7m8~<8aYjOVFZR_@U8x_tUEp;RBD8(Ok>phx=s%*}i&2DYsD$ZAEX~yeKC(J}chz7fEn`;w*O`qsjP zewUt%Jwln*2Mw*B1?}FHzK{;Djss;)M+5CBxl!2c^Hcve&im$u*m*GFN5ViW9CSIe z->R6564)=^zJhLNPfC8K8Z!@+HnNM{)EvS+-glHp1i6TqKOoL~415fgdxT_|F*oCNSczKgyXn3e*< z8^XUbdqh1On39rJ{Q1MI_m|vGm{~=d=~!LJw3O_?o~3`zF9gGvs(0bN>)`Pn{SOY3 zJnvB$;N`?V>KfID2+9pBiT@s~WREg9YW~*W8LR#C(_lsQNR#8^gnO%o8$sWV6LNB` z(>+8JrM>XX@VeT!gg7L-Z}7^f-L4f$!d`u7(ZEV;LOLpky-@H4H+!n;^e^7Kp%`cP z5SfnOU!^Q{g$h^f_kU)^j+#o!-dNRC^V{G2<0iFRUlDG9WHJHXzP+qr;}GG8R@iNn zwb0sq6Mm%q8>fs+i_kA9y=Ae~7LXCTDQbdn>SMrTjfzj=^^|Qac z*`9PsJ5#;31yhvAwkw(cm$xEKQ}VWGAh(;9xFsOEz*UZAXvSo^8!1bbxx4Dh0;@C6C0Bo(Ul zEx+PTV*L36UstoD);H?daF;B-@hJI#%1 zlf+x{La!%(n9^S4xmQ^Vh7uNg{Up8*qU!o+Da)wEHkc0|p(=amz(JB6m$y|;9r{^|FL42QVF1hIrH z8e_6p*FB3zi+uQ@{$!ber={(dkl{(ZLc0Qa@CvXddsg(^6uVJQ_tNeC;am;^E z{w7OzFqLzMASQ}{z%cfYM!rFXXS5tVAgvLb4t^)ciUEgGgsg~PgX9M>!H ziR1c*lGtB!se1vIn^$rL9|S$Np>;j8FyZ@anJcw2v(d#NlxM58r1>0EqKP_Hup_jw zksXvnZ01!Gl2TN4rIlY)?Krek2$Xvr-W-W3!V1*;(7gUCvOR}rQQkfb-zz?Wmwr`^ zTi2QS`>GcBHoRkM&MxRg&(3L=l~m#au8h-GS{hxH=|Q{m0YQl0zIU0om9>ay9w9y? z%5A;kyq8k~IPWVQ<9F$Ma^!xI0Ezux5EQSI_E_^#-@B;dsc`ud0-c`pw2|vvRk0>a zC9y4d9>@Mz-g81kmi0lfUL)`tyW|>!II4ITR`xV3abh4Bcr(~a&~76(pDJ{=ecjdd zZLqQK`f^*b5m-Mz#^{b_I2#(HCuD}l@pkdqPvVerk}Lm7x3tL}UzDINe{<$n>=jemEecx1;k=;UPFlA*RA*HYPi_-!$OXeqLQ&I z25kpkuRIKZSHB^$W1!h!84IwMgBk~-+(v{`BbKsVAz_-~!x-yNL%+Kfu;cj7W3s3| zns0#R4sh0dWzL6qB~a-I5n2E0agTGU&w+@-zk0=~_6mT8kxRxYj+EW24p;nWSxsDI zNXn}CtgwX|{>6d|@!`9k79mo1f;-+~L+Q$63&omw8GtK%hwLW29PXSPMMdbtR!G7% z#YTGoCEYcaMbHE1J7I*NhbvQthky_mH1ECPT16p z231Tj=(vn@R61|p`M&f2!7>$&BHRI!XTzeDV}1ZIe}^}^99-$w?z;^Ry-KlDOr2;| z-fzStIY>D;5!uKPvW=Avz>-H!_Cj}swPO)Uo^}|Ei8=F??&IeEs@(E=6Ul;hwJ#B2 zDkE;=Z0dU)ZswL(YTQg2_wVgzHgRsZfRsp}$!~L~j!A6H2^^{zfJq}-`)#+3%byW( zrHITO(yMbho!+WoOdA4pPN(sZCi9hJMbiNXd%w`($#+(Njd-|5lWUji0eALS*zeF6 znRpIwCA%VV4+_p^mx@8Ejj}&-&@XK%S(WDbQHDFQc5`Pvwckl;A7PlnbzJ-AYEVTj zX7V>Ul&K{?j_Q9iRmLM9L_Gc5t+qJ)Cs)%miiO*n#k*D!8H;G$m#+u0tzs!O;?}h} z(|Icu%u?%$kByNZDlVQYX73vS8Mh{jV)WzP@yk^^*)$V~%+N;^@$hBbZ+*&d zg%DLp`gibam`Hf4Whd}fy!>P|1uW<`%QEA8!opqJ)wOg_I_LK^3jg*AnYj?+0zvs} zweTvOp>?MVC#aHv8(W`i&Gb}#x5g}~_-7JaQulrC`R z#>{5_?y><@R%%MN`5oBl1gzpzVB3ghiL;pFHp#Rjs_*lRKH@~$%;suph2HusnV`s> zpq&GVCD9Nu0s^|L1g5$yHt*j@iwG7RW2WscqIA~1|L_te+`v~%Y6_AU3~F%2@!OYv zyK0B|=KfQkBV_Z01Pec4Jjsj7#Zepmgj^Q7ddH@BO^$}^8PI)?#de&C_+tuh;l`sU z@K6UnrQHVoAQyOraK-WQmwL@@O;YwF?gXpfVpu9VmU*g|yW0*-;=Ya5j~?fLOjuCC z2v0FZ(p&e-izy+cq6@lfFykJ;oNnmdD75%@i^|&IUhptj8*H*gLyC|(m2Z6{xW^Q$ z?IpDa$x6Lo`lj8Ab*F~MhvW5%{n1z*M(C5PcvPS~b(M;Hs&>fYzfl^4;%N!AGz5>= z1XlR5`+1oE7b4Ct=9HX#SjZw_beu~fPW&nSz8rluO2o@umdYWE90Z8}(O6cX6_arf zI(Rdp>4f|C?Zf4($7S~;dhu>AknKX*se}qw^bvMvI;e-y(^2|m9DC$ijL9jKVVHk|BU~YL!kN$C z{|h>!oxjHyI8jHWC~<33D}9kLAP0KIW1dFCa253k5|I_Tc=~r+fmgCT4aua}PNmat z16Dau?<$@&P~^$ciVU6H*t7$g^MKY33 zp**D;c$c;?HVv$CXQ;n_A(P4vMjNbl8!BH_2dqIE+@h{?-@MS~rj74Cla$bu)LT`= z0oG`p2S`dvqr*_$1N7{TKJ3d#9j3XHe&*9~ogjIdM1Y=tr#0afl1z|d-kODUY!?K} z;}_rg9V9Mwda+%nu+yYnjf1*W!s~ppE{^@6W7j#f>3wjztK()o=2bf_ZPWgG-$Aa-XnqTW7h5R&9r~KNYZ+29tN^nz<3)@|Q z(l(o~d67%cL47Q$+Z<@FE;{BupTvRXrgwhsj)Az#hU&q{ZM^N{It6{WZ~OA+$YTa{ zjAA@pqBV>hU7f@+MGK1$P9r}G*mqL%g2o*zEG!)sQvc!(s^XPjCNm3Mxy`9(9wg~E zTnHz%O<*9HFM=e|44Jgcph1ICHl$yEaU*gs2`R1hp9)?DyVN|ww70ko3`~aa!xh@} z-*Dv+#rMXsqN3ta8rqI1`l{t<08yW)pV9i1MxfXd{tSs|0P7wdF^RkZs!JSgL1auP z7d@;B&+9=+5|RnCK6tI}DUq&dJIAYBU)D51dT;X9dZO&iD0)QOP$EHu!r(ZDk`}M! z+uPr5U)+n)=&o6n$L~eb9G9Qg#;X$;(dLVo;nL0!>rMV1{5c4)>k5OO>|c|w(@No< z9uPQASxtDnj*Qyl7ayb{L*}8zvGL3{DYFM3*oMV{`lDljcxFnCk)n?)X!bSAVjY5V zX`3aq@%tT$M3h$!K;wMZ$g0nUbDYuVzfSK16e0r5`Xb4ZFZS1@W7l!q?j7B+j@9to z%B8GoosY;uLa4})yk#&a_K4>_oIQoOy%qRKt_v+x>!?CU*zgbb{7mH?yM<=EoKM2T zd7qq|HosAYs#XZ+JL=tr>L5S`lGofOAUY|7I2VtaubXIlhkA;Z@gb zp0{so)r+5zVRIfK(H7|ixz&m^lq2*sJjP}9rM|5@UgvI4#GHeLeCt-lf&$-ZhPL&F zpT%E&I>F1}U_V{W{9H=FPn2L;I9?t#%d&OUL5s7+~wfqYy9c=8w279MIy7P^V3q`M;*1P8j; zEo3@qs8vk|JHr9*RYJ$S7ALxDQN&Y*p+t_2ffM_*9VU2S=e91jY5$JF3mm(?>QKT` zE+dDWM|9CmH9u;9{)KuaCQXl?j$F8BMcHQ(Ymt;W?^vY%ENM#@*Ybku$Uz9KSkSicFuMS$;J7 zt)FVvjBd-J#au`s?&6cf6K~;b2`d8XzAZpbqju`URD}3@tUHo)E(<^+MQ(sP6-k{v z)wu7eDFdQ4!P9wXFeOoS0I2#}MgAER9?8c0u!kN#rMGph1W4Yy2@00@u9Jm(~SrT$V7RcN|#1Kk$(2)|2Zr zM?b6nAQplJc8_GijsE+>R_{4N#sNfDMu2=;2e*{ALnO}+wdGpiI> z+FYn=3`&v>`a;CIftM3q-kzwj5;4SFA9~(>50))Us+F^~Jp>CdfQUXe7uqb6r-emt zZn^=f5mbuV4a3f=;F)s27yU5S4daikZ4L-`-@JCqp2lXzy4S8H8myR=ySTN(P3ad?I zkj3lWIJpl#%R$k0*%B3aY-@IvU(jljlpz-<>^%KH|HQ|;{12^&`Kyzcv_U8jjqk%Y z=%;4|{a~?uw?RF%o~d@%!{Yz2=c?fw=|Mt<1Mz<;v5&(c5vLi|B;8c)G_b?IzKw=%BqrPj8;`kwx7qO}c+#VX0O)-T*_iuRQZbhs8XSx|SP@cyd_zJS~9|X^jo0Lr)v_d^wY|1s<}>h{r=m zJ>(rWbvwa`Lt-z=KxsN?kjqtpsvQkL=Ox133MlYQwk6gwGh`fzr!H*+XPo7i2lp<^ z0*RkE-0D4TO@KeMWUC)glz0%rAR2x|Hs>@WLIPFTHb4nUGFAQVGkHu;Kr9m5iA)$m zwG8Dfs{9iY^fehBPWtdlOjPCh1qkCsKch~H=fbT=Umn{aw3NenogcbRzGxYj@J5&b z>5S}X#Ggh{e^eIdd>!ut2=a~G0bMEsbh`+fkL3aSF91{yFdCmAJ~D-(rXUXV1*&(< z;6E(EIN}ItzDkW%CEsnrucO3=O=^0IhT*o7m5L(vvXNx_nbwsEWiYcn=hS@IOaAfP zMJ`sqxvD}{xFSCR3~C~+`YyIx2j*cye_-<>Aa<@4X#U~N-I-YY!UEYh-~+Jj zMxq4Bdp`L$&sOtZTIi{F=VS=D4hqW!5y-iHmj>z0YVQ`=dmU#%eu=OS+$ARnnOJZT zKJuF4^54=Y28<&eWdfKnb*6L1Sf0jLJuhhlQ9YqhG9vJxEz(?&yH&|lSjME5a#RUx zbMN!7l2EQLw(=YVMGryoy*%r^ozc$Af2vj+GW?eo`;{OUz2ZrzfnP)!(UUT+-16Mec$)Ds)r3KRF-l zlj)Ml(bN3f7f~}P{R8XB&v-wYMghe&Adx~ohi)4;Efh|_s&BXRG|2bG3y!>(KQZ7d zhKFG-r@PoWsA45bKu9qhYZGhh-)Wl3cXNMG=Ui0O{73OKw(<0541|@0V24;IEO{%T z4H$6#X$pmVfc^NZATg30io5ta1i;xvHvia6CE6Fy1r(p$=V+T) zpNEJDP|)xbB&8VXDZUH&qcO_tFW5I9LYK2X0VAh_g1!_Y)h`iUaWb<)&LBNF`<)u_ zJV1(ZQ}XcjB=|M-0vkZP7O@aFm38U7(s*Q~yc*Xe_E#i>TW*6R^0|g6(X1dstzVG# zB%-{J5^|Z=U+G7tXFT}J^5b_5q~|nU5%B8;Jls3nomo7^%OxEukjk0PoyGfcSxfye`!g{H^AN3(2AO|&1*3HUO_xm zOseK>mO?gO@~NC{`kc~Q6moK3?dEia;Tk0QJ*zyE zBXYc`H*maP#TLV_60}Vc@$)yBdIiT>1}(Mq=<%S&_n&+rpHYV z1WHfc2b5w*7MNW!O0{Y=#q&poF^>{;|M$?$g+b5KUPz0OzW!H-QMM?sCk zZnM6zi-?x+}n{(&$S{A@YNI(3o^NWv=ivC;2PUV_CB zbJ+D}L)XoLUcc|RCkiLdi@<6cK^|}W~Gty z>d7pvlmqzmZJGcqx5z-h*u^*DYOdp`!<(44pP-LP(&(u9@wEc288XWc?}@AAp1H`A z;M7w$PKzQ~^n6&9G-SPy+RwUSozndM$`SnbWBMi{S6}xEfDoX~qv~04^zU8y>il&Q zA$zr>(-D265`>~IghW8ikkNlQzis~y)oIF2*p0K5*b6E+9Ndy?_;V618GAt`ks=H= zGqg(>i#6uOx7YRe9YP6w>AWn{d6@=UQzWmIVi7z#Y=vx{1n$ z7A`K&MJ%sp#o@vXT1Tj5R~C& z@HMGeAp%%@{IM3WEksCz?a@oYU?kHgJ_3^ij67*@4Ivo@9xxjmFFVx?)(HUap@H0- zfVvP!nJH@Lw)$n^Jo=?o8E5@l1~CvAky;jR-8!&}IWkda3Rg6cc*r6BCIEqm+0+sq z_K>R<1C@!@xTvy>m!=CsQap;!kgpzj34k7Gdr9Dh>;-P9w--N~?7;I-D8S#7gb1-R z{qqH+a{;at^?mj9I$nwPQiuwO=0FCCPPj(A5W5NnHwa}K@b^HO#QAEDYgqpi=Ue6Y24+!dGNFV(~10zvfH2ikoMe8|4R&t* z(ZqqKp`1U;7amHvsrfos=PRTd$>LoG^AjHr z;gi_qsMA3|uA1_T0<0<&S-E6(Hsmd7deIWWX?y@?4O((J@NmuAc#;bk_)fqz5zIHz zn>|h<^CVMbVX4L2$+VfTS9P}v?~LW70ZBbz!Y;9yYu zgn`%3Tq5{6I4QJ=q~qz-mNBSz&31otPgUCrJv{Pj4eBS`UB?t%&X;1AUNbJX9fDRZ ztL(^);~Zv_3 zjx8{RL-iY^h5(Vm@y>FA6;z3mQs7E#(}4xK1D1L<eV~&=4ZlZvV^Lj0(o#v>`dw6D6qs zH7EE9E@JA97!1j7rH*oGY(a~1nO=C9i{nw`4jmH!imjmPFl1Ci9>w9xhtF%bgAITO zNyl>xJPWzx0D~!j4B~GJC>T|IKfK@00n9oCIi|B8^jZOG0%iy;f`Ks3K?}iah`>Ro zdhDu|Gg5M%$1q}-+Jjd;}L> zIjl#iah95cTPg)!1MtLHDQI@tO^$Nypk|4Pdq`;@Yz*Ztwiy(24+)Rc$c$mv^XOPU z(hUWQ2*@@(fYD={Ivo{{`Ckv-B9G3g4%!q20<_s^Eeb_VBW19LlW3uf_cREsvA?|G zS6Uw0$_pP6*HAj3%LB+@!(L@nd0&2*9RFB>RM4ydQj!(B19dBYNMn6Cd{6rQYG@G* zXnopV=eaC*a4s=tFHJZn*9QQL{(@S<&_#1>4ggV^IC{fRrVmi{{O8! z2^R>CCqX%<#Yen_29Y(egNgyRZC=b5F z>Uf}GtuNBAeJ68q(nP!Dvq5VtME0*B@_%m#1KPN1$FKD|MI`LOA$`Chf8c4$zGYA* zn6$Ig7`UXY1=+ttVZWWNS!w3<1@6(lmsKmpvB}U;U@aCFCJcQDjD4@h_6+qfdsj)= zZk~9+BI{`rTgo~VfxyIIk$o%@JquQc*O$WN{sJF(fMER;W%fbG)a0`?;N zq~}LWuwh|yZ9U~itJd*=d04X8-#V4`+Onu$QyS(sYHXI-?_*@vQ)fwI_fk`8go!kD8|^x}<-aX0fkU#Cai*>4 zzemiMZ3jSes8+FkvnUG>z{_V`$EblC*>Qx3pJwGYK60rqg*gN zWE)RM-RJQ&6Z&9O>w?6M0FWLFA7+ep+}!T&ho_7iOTZh}8TCH#+SqL)>Te$bkjU(s z6EnMU8I@lEC}~S=2Av6Jo&RG>W}vY8FI&}sHLyp|f}YzO@s9g~>NN;_iITG8T;=|1 zq$8>Lp*#Hpq(3*+GIVvLn z&KEVh1a$U%zoE1E$ceQ;o_r>S&)7r^S2JYEW?hyB{VTc5*Y5LNnz=I1=h|iNi^A(&qEesqLpTl2T*N zjV~}x0(DsD>_pb8w5Jjt1xRd9xkF+$9#mUU_)34dn14}6GvqK@&A!L`ZEflKt;O05 zI&l9|+6`k`K^}s5P*llRI|kt*J-RWc!-W4&PWZn&<-dMY1*+eF-;39M^Z5_-{~2Ne XDq+2m5^@h(`PY||R+1`~fP4Kv_x^Kg literal 0 HcmV?d00001 diff --git a/en/docs/chapter_divide_and_conquer/build_binary_tree_problem.assets/build_tree_example.png b/en/docs/chapter_divide_and_conquer/build_binary_tree_problem.assets/build_tree_example.png new file mode 100644 index 0000000000000000000000000000000000000000..0ac06bb5a13214b1af418807e6d236a94f1bb58b GIT binary patch literal 13759 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

Ks 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 literal 0 HcmV?d00001 diff --git a/en/docs/chapter_divide_and_conquer/build_binary_tree_problem.assets/built_tree_overall.png b/en/docs/chapter_divide_and_conquer/build_binary_tree_problem.assets/built_tree_overall.png new file mode 100644 index 0000000000000000000000000000000000000000..d68b38b075ce20b2b4c9b3ef802e59a792504109 GIT binary patch literal 25815 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 literal 0 HcmV?d00001 diff --git a/en/docs/chapter_divide_and_conquer/build_binary_tree_problem.assets/built_tree_step2.png b/en/docs/chapter_divide_and_conquer/build_binary_tree_problem.assets/built_tree_step2.png new file mode 100644 index 0000000000000000000000000000000000000000..23dfb8b8813e4be4797bde13be664a9c13d8a8a7 GIT binary patch literal 10758 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 literal 0 HcmV?d00001 diff --git a/en/docs/chapter_divide_and_conquer/build_binary_tree_problem.assets/built_tree_step3.png b/en/docs/chapter_divide_and_conquer/build_binary_tree_problem.assets/built_tree_step3.png new file mode 100644 index 0000000000000000000000000000000000000000..73f650aa6c98d8057c506b555039a0ffa9fcd969 GIT binary patch literal 12042 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 XT@x7o)h1pkdu!yA literal 0 HcmV?d00001 diff --git a/en/docs/chapter_divide_and_conquer/build_binary_tree_problem.assets/built_tree_step4.png b/en/docs/chapter_divide_and_conquer/build_binary_tree_problem.assets/built_tree_step4.png new file mode 100644 index 0000000000000000000000000000000000000000..fb5db20506753d81c44e969407b69bd27729dc97 GIT binary patch literal 12462 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⋘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 literal 0 HcmV?d00001 diff --git a/en/docs/chapter_divide_and_conquer/build_binary_tree_problem.assets/built_tree_step5.png b/en/docs/chapter_divide_and_conquer/build_binary_tree_problem.assets/built_tree_step5.png new file mode 100644 index 0000000000000000000000000000000000000000..c3f55b54a78db43f98c5a360a8d73e091541c5bb GIT binary patch literal 12587 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 dF`;p`^a&f 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 literal 0 HcmV?d00001 diff --git a/en/docs/chapter_divide_and_conquer/build_binary_tree_problem.assets/built_tree_step6.png b/en/docs/chapter_divide_and_conquer/build_binary_tree_problem.assets/built_tree_step6.png new file mode 100644 index 0000000000000000000000000000000000000000..f69ede0a6ad000283d1be45443c31c6990a1efab GIT binary patch literal 13876 zcmbVycT^NXvv1D^a?T=QNh*>SBnMfLtOP+&0f~|%2$B>D0|KJtAVH!65(EWNiNcB~ zAPPv%tmK??eCv1LIq#o)?mOqsIWtq;{i~|3>gt~9nR;fRr%6r0P5}U**49!p1OQDW z5uId6;%zTiZhltYinx*0|U7HMZ?;1x3KZOy}gi{;AhXCEiNujOiXNV zZid)3wLLvO?OwO`sO9VE=;-0mQODdt>*U|o*4C4glRtm{L`Fu&#>Upv z)XdJ#_V)JT@%ZKCRK=-sR-vRQFc5wY6<-ZvOc3 z?u~D(6^su2?B4WkSiAk@ zuKXA6F6+6Ni=$C+GIRPV7asZhmQA z+ul3g-Q6|&urjo^;!?ewpP#?5yA#m3UQQS>EM1)IB|FRO-^E;xmwQppn zbzvsx_m7VgqwfcIGXHF)7S1L0b`%s8eEYRgT)9*;Mev9qXcR0Kj}3Y>H+&x1U0yqE zn3*W-+eyfqeV#cTl00Sqt>)n1;KlE)&ZUKx>HVqg&AF|ky79g4g@dNi)z03f+@5W} z*2ciZ_}l3%@5;)8(~3HIw<-aU1!}?r~#aFT*O+0_(%Tl4yzpk?mwI@ zr=RF=82_)2FeO>K|H#=0az*{Gr5GDq&&GH#l80a^PT%1TjRlg!;id!uL*8NNZu%0n z?AJGsPe-uS&(vjXIlMRPVHl}sth-AEKtswr7ri}wAU}9Wm1aF2S^%uv&s={#n|516 z#aF?a28I3jXeUxDU{VhOMg9K0WZtk9VR*$?EGP~KzFpj}J)pyyYx2|Kb0!iR%A6ao zBCY^za+Jvlh1eAgX(I?vu)n_1KOu^C#=@^27QGx65tT!uuyLN=E$0 zN2Niotz=|5k9*NoB1su2|HJ$CVdjDN6-g>hiZs4l`qvlBLPJCb-$NSXgOyjAD)n z2M*ngAwd{0Y%oL$q3Lj{Z9%tfW{+|KV&Jhwqt7+`cVrmR*i&`#VOOeKze9}Ofhpa0 zUmg5UN-S*B^Whr)!f?dB8Q~CQXM}0}$)}k6a;KgoFnH;qz{2m(VJ7v{~#&DLZlIzsljVIL;#r=Ln9Gn<9hZ|0)*NpqObUzvY!dwFDOnkuR$ zM)~9v*%@>4LUOTmJaE)xM9GFefZpP_$$Il1E$-@@F2aEPB3a4j;5}sL8zXIpo$QpD zTGvAQeC#o@lPUXZf5&PPdbQ`CiL-ZX7x@G&&d86?si$JLSaXo>#TK$N73s9HgIHA) zZU~m0C(TiENYJAO8**G)*~HtUm)bW2kg&gK{@-W_cll|;K>rz>2G9HxV!>Njx1Abv z$@#^ttWtrE>bR{|fXOz~W+egpBcoSoHA%pHhJN01pu9o}jtbO~mjo@d_7{$A z02$^L(WXEN(Bg2B`Z7D1+EnjKBZ_U9?FuH|-d>3#N^^EPX$BZ>8Wlub?>g=!5!Icp z&G)bPCtp%g9JD+o!tQRzeyP1(bdh3Gw$A5CclHfBc`Ltbhd4o{=lmuN2_&lR>2l75 zCZY9rk)EU)WjpHuSCBCjZC#ClVl+WUnBFPdcaXC5aC?`j-z4QzNsb`)WbOqbL z?k6fRd*$Tp`nE3DK|K}8Q^c!h+EgLbb18y|65-VnqRz>3rRUEn%;bMcBp1`j7!10< z1#a9ykr&R%R@dAI+b-t@UBLE;r9d+gppKe{kM9X+taSj0T2JoKq9kI{!ZP zB$nf7TV&90^dxwa`yA%#$}$_TR!k7{{#wLJU^GvNB_8`MIzP88?sfT^b(0l zwn`rRae-G0`CV#`pq}t)=OGPzr0E9DPb_Lb=u-~qu>}_9BO{7I2W~Vp;dTU;HQL9! zCm9;dX!oNmkv|obx9O9ZRLQJ(#8lqslqE>&vfCEtZqsL{dGt6fItDC8#k}|Exvts# zXF+*sw4&rARh*~mEw`opqqwB0aHpXCoslo0%I=rWEjxcjI%Y7d`gQT|IFc7u!q5Z+etwgM3{|MhE#1Qe?T?~D8GOClB|IPKdgF0N;4tldsaNZ1S*%H!n~TcUt}bK z5iO)lIO#Y*@yAF_*wllOpF9UurjNKVab44e$F24!7o8A!PG%Ba;x1W2^@Nmy1uDP+ zz4ig+jv~*AP)8#-HzPRhC?k4XfXNJt1MBR@5=ib#-a4ST1gA9Y{oTE^duM;iC=fIp zZ#SQ>g8b*ATfW~yR+S|^oy0&)<&HLauUw#YHg5bEjf*{2B-ru1>EBW&pu_U|E7HqT zBx_^4FXVqy6CPjO@F;=2+__?&5C`OS*sIc#4t{$SSY*A8p#4V(rj3i|&2wMDiA zYAt2lcxp?t1k@jrirDMJ`U$H7uxgZvhJ><1_o05{l=wNkjrfJz#tzZU`23utp5M1M zK*M7bLGS6rOFDPhh;dq%OKcZio$c(AHxQ(TQA4V&q2KDoGGJucKsM3L= zO~8angSp&s@faED>1y3?iX6kB`kfjl!2Q_h%WgDrT3qaMR|33|G>NR z!{N3`0mUmF-?yK-AD4~H3#$|j%A4oeeJ?GY{$v5TEzK^M$gqYha>f#UL)eo4tn*Wv z4(SFq4|FgNl;*Fz|8hNyX2z*1Sg#0{Jp$QAyI-0pF*ck?fll^_Td$f$fh?NJi^t%K zVJM!*rj|WG%nT>NO~Q=irU*qvm*5mw1NB$i?Rox3?!`7L`io`V+6u`gMsFQ+Xp`-0$iS$ z^wT1^Y;V@ezE-6afMm*BXxKAi4Bzdc4Zf@KD~SnbrC&Se#MF}kD|up?U}n6H z(QL_WJ9Jrbil`{Fk!jW${N{b3z&I)JL<$VdJds{Fg`9=f+2=kr>1tHZ-}so0h=A zVuFZ>KIuLa51vo5-i=w1QS172E|?CvBj|2BAob-{+vca^W79Q1$EVErwhp1?%BCj7 zUKeuV@XRD=-+68vn)Rp&@dv6KQxGV!`RgJE+mS63^pxSN5n%?or(PPw|q+=b8TAGdk856Kl)NJjgBiRw;&r`9iMJRuTke;#!?gHO-Lhq zf3P1pD;xz;YxR^7+mXnJ~z<+Wee2W^xuzC3RmL zvWVu!U!1)8w`E#L=P>j@<{9XU%;`}4L5o?otB4r5PwfG2J0k6V`S?8|yeg&7K3U5Aq%7k;Y zRibvsJ|?aNE^$52&L%1|oa;8ZXL~9|Y}&ynV;sekuOTyM z`HUG)dShHO1B@O1y3}!0lytHuDh785ZdYgnj}ueMa>S6uV@|VWrcitON_jKu&7Wqs z94jdYLUH%d<)dRrLpAdvO|ekDO7}z4$6S>p*`oZ!1@l4Cy`%zmie5Bh-EldSXWg zOMKgMUCx9P!}Q_xKaQSlqE?2w^zL>Sg8q2p&Gt_k$baENIdLCS-Wwi2gi0hYnv60| zrDxm!LXi1fSLNv6R!;fcz+v&=0FBBr58u!XVtdY@b;XKCBQc#f7-eu28+Pnj)rj!B z=LZY0M*9SYMCn=CFG=4*6#i+mT6!HSOOrKu{d6GV53Mex``!(y1I3teON9^=7Hg&e zYA^7_%px%8=nl$?`C=z1ywEAFiC*Hk_nS6Y&I^@&M_sm-wJuk0n41k)wuuQQs;l2MO9_s0>JfFD!$omudA zuoMImE%2Sw#vLfq^I@XYr;$S>o6{JrINB>}Qd;R~5mzSMr1>g4iTf4eL#h+%^vFn* zLNwAhs_|2)eGh#lI{JkikkXt*aa;zu7FP&N+>SwKmSLIIdemnl)sc5r5uThzf5;r2 z!0}j2pB9Nm49tWRah2%2j-~EPzf<1hmP!Q=g|~t#zuk)idgLDIbDxB>Y(?3j#Cz;k zitO6dsULJ?9r2s3Z;d z*h6B1P)npdN|)~qy2vk`ah5B6n!bOs7jS?-+*>{QHpW@|nOe;noURnhH<9oOTi2l| zcK9Xat|F4f2O_mGue`MS7#Jm_nm8qx3|kVSep`-IFm+Sa%>H~{)_xLbj@)lW5(vy(<&t4mRa8Y0bs``23dp^yxIK{wob6S_eKoE3K!M^ zj@~s5*Q>y<Ph07dAqhwAM;<;0XMx>Ddt*}jZ(Av*&w7vH>EoJkZRv*w8TXa-%V z#QWX>qt&zJXdmu~=T2Il*gK)ejIKA_DD1s~&OYl{sV~fk;B5v%1+Bp&p zwK&vc_%RXEY%uWJUO~|#)~HT1W~gwC6t!`IMJ>^c*HuC{G+*V5J4Qzv_$=S$yl)3C zKS~=)gXUTURJg-^Lpt9TUKOx1R8`cSn(ZAZuX6 zP*(e+8^nNh)cLNP>xUHJ6ki(KIiJiEgp$-)yN^I(Xz}s8c&rsEha+9=TI5qRZc=tI zxcq8dP~mJ3XyJsU;F{BOehN>|_#v-xpJ$>Hl3LK$sI7QG1%p1j=lg5p8RQkhQ5;Pu&+A)gx{(Y6hay8 z#3z0RV#DXFJt3Rt92=FcQricK8@MZcTl3tAwK5We0?KrT--NyM=T@`fzkkTs7S7#z z=5!^S1evPcY?H4ONoiF+CFZLN9_}m;pEU=JVzI6R?o(sI-xPt2rNQzHVou5vtF!p? z44VLTj+;RuLuV?1972u62-ix)fLQ zF%eA=c~#Sfa(8B7wMycZMds!~J;$G@*jK0~D~Bzu^_GreX>*!>k<`QY#Hk`A=Vr56 zBOe*!Sm3OWV&lmOKM^jt|1#xQlC>?d(CKS*!@p|Nv<*?i=}AAsWd3+LdD=`OzA9m)n;DqzeS zDtmeC5{^1&WxQo+$^G}MBlTx4={$Y^9!IlXV!6~N4GI=+D-m%t4>M>!;3%H~^h z#gWKbTJPcX*ltan(hRa{@^#g=DzdPF_mJL+(PU9w zLf^2u*_XSw8nC)Y<)DNw0lqt2w#0Qh0A_mo`YRUvftmOiOX>u&P@eDZ?mpmReyhI@ zqF#;5=RBCRFMlRW8z_+X05cpKfo8P}U$tZrM7TRsA18kfb|Eh}RlCg@sEsU4cO)6z zW`A8!`2H_b#)$`Xjd#NL0BefUk$>70P| zYpg|I4R|B2F#9w(#U9J)L!38WZAb#IjV(*gRVxZV_C{_-T$gZmTftSY(l%6F4AtT! zwASv&({yksGzhXx#Vp<**n<1K@)#i-ALks4cZa)W1L(4-RBA)e-uRvvdo^|d`(*3B zq1{_w zi&o|SKsgntaSSdAHxYxKT-Y2XM{|o~}X6!Wy&fC;V!t$e4 zAn)n@?#}avvsdGI4%Q*z8G#@R@kR*idV5>vtM=m&-;fbmuer`gJeN7;z0x28^v6}1 z7N4tHH;YWoPWPlAt*+J*gDa?inY_Kdh3hL8CHVIu&;keJ%z!PsdFI8!HTT;tzj;jF zip(VvSNbPk4)?uzD89)Ca@icvy?hl-qE6p%Z%FI-x#PFenmHZg5WSKp7L2S zX(iV)LlToAOF6*YCF@u$MI-K1zCh_ zH~$f21ilL&sdu~wEDoMv_ptepRcyAN-mhWy$)MYG9o=@`p&%B{_C&9J6WXmWJo`!^ z`suCvow7T_`q4DcUxDYh2bPZHK17FZ zxx{oYa*X_S3h%R}%PwBerUaO-LM7+U+c5T-y#p-Q{)?7&I%LL&2*SNnYA%f=zU>K0 zOuGLUb#{dBK8=ASy6j~}gzl~P)2jo*!S7Z0${eH1Cf_5G4=)PC`pmd^&S0sZx1p^@ zB-_)>Sb7#bc?jZ`<}L8l0H_yJI*+ai!FFp>5lCV)XEutYjEe>T3UT2BUs*dk!NK6U zlPjuDHi?_gi>v7V)6FXjUY$Ysy+D3tkUPX=JWK2oduH<#+w>Zw#v%C!@)%gx?gVUD zM4$L2Dt1u&Nwm2A*+8gqAR4P7n7nC_q3meE;p5NH(=dWAv2{yr2%^Z*3bPKggzBCr zMBNKSsr^4h1`*-J*4ZGkM`i#qy)7%wW5$UwhVF6eI!jKlwnR+kOeO|Nu5B;2%G~Wa z9m8+U^mn(go#Y1VXVWy;zWIzs<{&PZ2<#a}-bGHQxv4WyNDRd&_dOf<$bjG6ZPmPB zBonRb8#*e(uIp^JM#iQ^^r8@?s5f@`xuLhSkIT2C0^&f@e@G@eXwj$O)2K{l%xBxq zXd+DauJBFpods?1tMPtT;$!h9mh(2oAyH2Q(FQJmzy%+vc#qgRX?Wl@cy7Hnooop) z*=9uCp-&#$XU2(ZAahcat^UeBa%ZxMVk|FtR(*xY7e(azp{})0{4_#m+oLQlrm_%f z0;szx32HAvOs2s5D^VW2U8u3Ret9~xmwIX$wbwSto08Oy8PlH8v|MgtQaYteb50}` z!-P8?G2V{Q=6XQiL=_#xOL_BMylu+!9vq|O@w1~Y-d)1X>kHbL+Kbu=THB1Rc&@<* zyu2jQthtYs#9F9`qsB{x$)h7Ce-@ws>r*E z$64NWv$!jpcki(QudSr19B?pbCXkMBoD<=qDs;CO_l z)fkfGhfp>0@c^N_%n##kHn$#>frCd^A6y5=Q7Z}kM1F}hMOK`0{}l-#I6Nky6h${T z$KR?8ZB-1PYa=#aLy$>+Qr7-~?(BGski7^8{%F11Kor52P=RoC6ogPOYyL^kbW6-7 zmXoPyiNH<%YGF9sB2j@H)A>iX^*v&4)?I{%G(9(b2in?9oyr3Ta+x|H_|3b7zcoZU z1t9K>o~Qf=S5K%!INEP1LyDrX1x>*>Ti1kM3usG1PnuLaiy|j2<*u~u47&4o$K80U z%D}Z?ACr9t>5f^1qn+4lUu!JFaoXszzZh(C^1-vY_&WMJ#}C>JdzGm*F`9vhh!>dz zWCWyLNt=VYHGtZnDC%;w#nEy1rzuMau^{!z z8~@oxN_BQXC7N$o*YeAo$$U?01_!Q~IVcM*$B;3QS-JdO(HRzcfOaX z329+qmHBf)X&b{#GUQ1R{+8jpl7^k@Jv?zpYj8!|S8C&Cs7Mn#mDPp6Tv9>Q^!6-F zba>po?nZ7^;tzj;llzrVnd5faLg18l+O`9aN0226Cg z)5b4%*Q}fmoBm}q^m<0yI%cv_gBq4kL7L>myoF;=%R}Fik5l|?xbX$>P}qY8k>l$P z?xIlGbO}(Sz=wecm)xY3HBA4dG+gw(Jr&Cd5mOet7K5qxCT6FL#)Zf+a7=4%IkY&k zgjT@9;-91m6_)nD!Otj9EAZu>EB?TK=gk@1tN;cMRJTPY5BAQ!{|(-tgPtNgi%fu$ z-smtyg&@l@iv}#q;JFbU7)>ZhBPKbJ)8jz*1555@Af38yd;?_i!r+ZS$9Z%dGaIh* zAt{-asXjGk_h0&fqA4`RD+zl@iK#l*j#{LNbX@wE&@f*Uxa8~Bd;cFjSVNj@Z+tDr9BKN6_2kU-Y^U_-T z88U2-CN%e?6Q3V|MfTql!Vwx5$`CK%;IHyDLOEhQ;K}iAh#6;9b83RW0fO7wN)Z=f zyv)!=tE>)XG+kBQvAkv`7tD+!94vSt`b?);IIt?}S!T%35F6X;Npr-GP6`3$;Ud4a z9<%U*1;(?*s%tyYJ55VYWUbrAqNgkr^Hs z&OF4KPtc~mub9yOw1uo!AG@(Egii|mA5xUoz6EloMTVW1(xqCAL#Z1v}U;PSbd!;k5u@O@<888|JM z0HWrYNpr}_-lErp&)~n%(`& z>?Z-CT(SY(1s&aPzED)rf`R$sO)Og-4{~!)_hSuKIdXs#A5(u`vGXK;x~Jr%u^!xO zwwSk8opyG5*6+Rn9&jM3kYpSY6Qs?JzbDSBy@8w~OdP-xjTM(HtI0=mmPaXAdd;q` zEB@souu{&2+ft(})|HZfue1=Wrl2WVl3S!@(P!8{Yqc}+|GgAD4(dA60&gQ99tOU) zHUh`6W!VE}E8~ITM<5cX|G|Cy(70a_=Ga9Y*@6b^%y0qN^GZ76Am({|2M?iaGfgNpc%=C-6Mr1$!hwEKkki!3#;yYq}YZa1a# zOj(e%B|2%Ui)oMU#?U*k^Cbz9?fX^N9^V^Aw{N_iFX&FoM2l$_$4kR!t{DUKm*I)v z2hFugATbl4!Nkw4RtmXjp64w=&Lxyp?j9YX4A%}aDcb^dfOON=t#^9u#c~l%HY1}J` z$>;Qq>=O5%R^x>(kUt@foAl8b`H>6mg^GswOZ|TBd;M*%&CFJxVy8-pNo{IItTBB$ zV()-cB;eTJbk{79qvwd;UQVtGYlc)^OGpd^?&3@YuY#awmmG*XDN7R0T1;Mh z&uE-VqRQd^v5SJl2VJI@@HtP^)i1cW{I&-3o7YpwBzsGh_Nr>7ghZv7_Vi zm{D4@$O~zM6l+tT4YA;rMra9Oac(P(J}Um6oywaZ@`lLAhyf$(={&|!Zz}C##2oMR zO7OL4>bwPFP&b1LKoXJ@l7c7S*DsyIyWau60krO+Hv&7h7zc7ULOSI$&)6z*b5k^O z!ojBQZWJt=K)ZRk{)NpWqUP$8j7t zEItP_t~0KH0#F+%g0<$dCJ{dp!MlvyElQt4#O$x_V z=&oSW-#KP{s5Qx4`Fm+;3%B_$FI(e8#)57AKy^J>@)bzaV~p z{x77cArsu`C8D-+)k1gjU!byGCZA{#L9od}gbUAvj0lF3EXMXwol_5Q@H4Ge#;O*( zr2(>IL}wT&X&DSrTbYKxn`nO%0N=q29;*Y&3kO=@P=bn?eVp_^^Vy2LdVm+Up_=(x z!H&liW@t%*3_CpzOTJ265z4CNGF%{0U&Y0R&kkduCeZiPxtW3Yb_H89kk^|LNtm6( z`d@f+1y`wmzeG-u!3j=>OTfQ=>wvR4I$MZN2&DvGL(H;dBZ$Is8Y>g^1%rnVf!Xa~ z)Ed(q*?zFAen@D31BF$$P(0`=?f%Of#1J~kW_@}Y#~{I501R^bKp$wSOr(997hpr@ z*ePmpl%P#_hO`Xq-)P}Byovv-78n2o8Sws4(V(36*=&^dFTr%ARy+td(hB3=4J%x& z4+=U_s|%ovv4uUraH?$N*Qu&<6qfGU2ukfD=};{dmMI9@!(B?X<-l=@h1S*l?Jan8 zr=g3|8IfvIuHPJZhnvssCJ>o{sLuWLcZT^iioDR;qWR^ z_y&gkSK8Ab%Vi?Zmvy4*6y+Ih713`@=ZzbCE^wWC_^vPruS^tddiZ$toT*wOxB6t3 zJoB@@(6W3>= zpQI=qu=|fI=o_)-#|#=zTx(hNe3dE9(eNl$Zmnalc`isC=0+@^A&DFN3Wl)oFg=c1 z{qDDaBo*dQkl)BQZ0cJz34K~|>L4Z7n4sPN+5zW4lCoyN;QGs^|BDT9R#;(14h(Ms zq}E5d%G#BpkV($n8()8CktW%IXP+HW<`<^_lHD@;*-T$nz(fQop@}utknX9!aL!gN z#6R>BA)2&N2EPfq%z|CyCL*p=YEt|An~z+4`!bh=i>oi@g>i>5GCRvpM#tX?JgFc1 zh`Du7h$Jqep5~)*gZ$Otzd2@IXFcU=N!d#i>5*D$?JC39R@O_7jUpE-xNny79ea>6 zPt8za=;cUVJ%U*q)spqBlP>>h*jYGa!|^_7XTf7a*=P*e3j7!$#o*N6+?`Wg82V}l zN&-q%)w^HgagjHJ`W-gb>r4V2e0TiEmb3JeO-Jl#e`c;YZ4#E>&_I$lp3EX=h_Yx` zj}dOdpDwh;tD}Xixmuah*6&vz(&QM1X)(5e)Q$v2^f_Mc0R-EX8;H!?l!RN6ei7y` z??UEIi!$b42Q2%71c?3I$FtxS?y@iM<*?z?g!u)d+{tp8>u4}Gcd++B)#|nBZAzl~ zBTqgTVp6hpr|UVIFR}H?#iAnzJ70nQ@UxGw57$t$jY< zS_wtT5&im3Wf;x*?4?#DK`IEq#lG&!cZ`(NV>uk+~3&p3Hli+tPzDQYe2mz) zE8PwHjN8&bM#E)vcP%7I-`DMJe#s)fptvT;Sl|6q>9~@nR9cNp{@0h6q9n^(m(mK= zb%(RwjlbEgdEg)g-5Aqrf=Tbl2^05GRZ@4Ty2pGrl6S}Udlz1OhIhX{0Ze&9SfXve zq9ZgEAO@^G25C~Zea$`f8mvno;n~+A0CChtRbB90(D#e=5ILbyD9>0|&w#0%jVfn8 zUxKd3FDmlJJw4y^I$cq6p1lvA@^p{*^o)B<>FEgRm&TJAkP#(YI(SU^jk)|>94lK! z#U*+tn;89i)Y!#IMi8FG6vif{jSMCnx9go@S%mv5#vWAgehT69p29lwG=~w>-U&MA zTtw1RNc10nt7pV#UX>P`=On#BJsb=U>M*ALns;Jf^$*_eX_oLLP0lQHZ@H5o|6t%; zT4FK}aij%khA&q%v>!Zqyu)tADE_4Mc+9~T152mhKtE6!E)hTffX~^urM>;-c{OcW z=ad(%^Q7KWYtQpEol$h)-J1y4+XEJtv0KPOk8fOLR=;TCTiMf0uXN^48HA4lx4}r^ zG4EvN$bjM^zJK`kw#0$WyPe!5h$<_-;#4FwQttSElAT?Q<7X|zADfmh_p#0{@?HU- zIfTGlS~(0h>V50Q<31)mnM~Up4p*T$~7Du?D*Bi8#&ivaQHcyhW__pI=h=f1a`Z$MBb3f;y#jQcR408teVxI z=hMh#^!JRjKBmRFi>Nin$aob1xjDAhiKYDx4!%H9@rV)c#EBP(PYdO^r#t=eo~ci` z>rdsA~JUd`(QRN>m#Jp&p)__?4~6zB=a<^NNkp93T|W+I?m2 zcy(5XHdi~xl{*FnI=;Jb>7qtWUM}!?D83{6?>4djpSt==(x<3@n2?i(oiOtMLR--b X+-*?pK6sh=udJ=Er}j?OD&+qF0O}kw literal 0 HcmV?d00001 diff --git a/en/docs/chapter_divide_and_conquer/build_binary_tree_problem.assets/built_tree_step7.png b/en/docs/chapter_divide_and_conquer/build_binary_tree_problem.assets/built_tree_step7.png new file mode 100644 index 0000000000000000000000000000000000000000..ee72272ae309144a6dc95e1f35d3a39c21ae7c43 GIT binary patch literal 13985 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

M+3wbc3FLYse)q|NjK546`llmn?) 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 F{|6$$nY{o2 literal 0 HcmV?d00001 diff --git a/en/docs/chapter_divide_and_conquer/build_binary_tree_problem.assets/built_tree_step8.png b/en/docs/chapter_divide_and_conquer/build_binary_tree_problem.assets/built_tree_step8.png new file mode 100644 index 0000000000000000000000000000000000000000..8a180a23dd01e75cefb157e52bf701443dd486d2 GIT binary patch literal 15233 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 literal 0 HcmV?d00001 diff --git a/en/docs/chapter_divide_and_conquer/build_binary_tree_problem.assets/built_tree_step9.png b/en/docs/chapter_divide_and_conquer/build_binary_tree_problem.assets/built_tree_step9.png new file mode 100644 index 0000000000000000000000000000000000000000..923dd9036d3f7c6c602eb4c069aae8b797ef3481 GIT binary patch literal 15889 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 b7%o3ecNEl*!}0I0-hh(4s$7LEEa3kF3-&)O literal 0 HcmV?d00001 diff --git a/en/docs/chapter_divide_and_conquer/build_binary_tree_problem.md b/en/docs/chapter_divide_and_conquer/build_binary_tree_problem.md new file mode 100644 index 000000000..9680adcb6 --- /dev/null +++ b/en/docs/chapter_divide_and_conquer/build_binary_tree_problem.md @@ -0,0 +1,99 @@ +# Building binary tree problem + +!!! question + + Given the preorder traversal `preorder` and inorder traversal `inorder` of a binary tree, construct the binary tree and return the root node of the binary tree. Assume that there are no duplicate values in the nodes of the binary tree (as shown in the diagram below). + +![Example data for building a binary tree](build_binary_tree_problem.assets/build_tree_example.png) + +### Determining if it is a divide and conquer problem + +The original problem of constructing a binary tree from `preorder` and `inorder` is a typical divide and conquer problem. + +- **The problem can be decomposed**: From the perspective of divide and conquer, we can divide the original problem into two subproblems: building the left subtree and building the right subtree, plus one operation: initializing the root node. For each subtree (subproblem), we can still use the above division method, dividing it into smaller subtrees (subproblems), until the smallest subproblem (empty subtree) is reached. +- **The subproblems are independent**: The left and right subtrees are independent of each other, with no overlap. When building the left subtree, we only need to focus on the parts of the inorder and preorder traversals that correspond to the left subtree. The same applies to the right subtree. +- **Solutions to subproblems can be combined**: Once the solutions for the left and right subtrees (solutions to subproblems) are obtained, we can link them to the root node to obtain the solution to the original problem. + +### How to divide the subtrees + +Based on the above analysis, this problem can be solved using divide and conquer, **but how do we use the preorder traversal `preorder` and inorder traversal `inorder` to divide the left and right subtrees?** + +By definition, `preorder` and `inorder` can be divided into three parts. + +- Preorder traversal: `[ Root | Left Subtree | Right Subtree ]`, for example, the tree in the diagram corresponds to `[ 3 | 9 | 2 1 7 ]`. +- Inorder traversal: `[ Left Subtree | Root | Right Subtree ]`, for example, the tree in the diagram corresponds to `[ 9 | 3 | 1 2 7 ]`. + +Using the data in the diagram above, we can obtain the division results as shown in the steps below. + +1. The first element 3 in the preorder traversal is the value of the root node. +2. Find the index of the root node 3 in `inorder`, and use this index to divide `inorder` into `[ 9 | 3 | 1 2 7 ]`. +3. Based on the division results of `inorder`, it is easy to determine the number of nodes in the left and right subtrees as 1 and 3, respectively, thus dividing `preorder` into `[ 3 | 9 | 2 1 7 ]`. + +![Dividing the subtrees in preorder and inorder traversals](build_binary_tree_problem.assets/build_tree_preorder_inorder_division.png) + +### Describing subtree intervals based on variables + +Based on the above division method, **we have now obtained the index intervals of the root, left subtree, and right subtree in `preorder` and `inorder`**. To describe these index intervals, we need the help of several pointer variables. + +- Let the index of the current tree's root node in `preorder` be denoted as $i$. +- Let the index of the current tree's root node in `inorder` be denoted as $m$. +- Let the index interval of the current tree in `inorder` be denoted as $[l, r]$. + +As shown in the table below, the above variables can represent the index of the root node in `preorder` as well as the index intervals of the subtrees in `inorder`. + +

Table   Indexes of the root node and subtrees in preorder and inorder traversals

+ +| | Root node index in `preorder` | Subtree index interval in `inorder` | +| ------------- | ----------------------------- | ----------------------------------- | +| Current tree | $i$ | $[l, r]$ | +| Left subtree | $i + 1$ | $[l, m-1]$ | +| Right subtree | $i + 1 + (m - l)$ | $[m+1, r]$ | + +Please note, the meaning of $(m-l)$ in the right subtree root index is "the number of nodes in the left subtree", which is suggested to be understood in conjunction with the diagram below. + +![Indexes of the root node and left and right subtrees](build_binary_tree_problem.assets/build_tree_division_pointers.png) + +### Code implementation + +To improve the efficiency of querying $m$, we use a hash table `hmap` to store the mapping of elements in `inorder` to their indexes: + +```src +[file]{build_tree}-[class]{}-[func]{build_tree} +``` + +The diagram below shows the recursive process of building the binary tree, where each node is established during the "descending" process, and each edge (reference) is established during the "ascending" process. + +=== "<1>" + ![Recursive process of building a binary tree](build_binary_tree_problem.assets/built_tree_step1.png) + +=== "<2>" + ![built_tree_step2](build_binary_tree_problem.assets/built_tree_step2.png) + +=== "<3>" + ![built_tree_step3](build_binary_tree_problem.assets/built_tree_step3.png) + +=== "<4>" + ![built_tree_step4](build_binary_tree_problem.assets/built_tree_step4.png) + +=== "<5>" + ![built_tree_step5](build_binary_tree_problem.assets/built_tree_step5.png) + +=== "<6>" + ![built_tree_step6](build_binary_tree_problem.assets/built_tree_step6.png) + +=== "<7>" + ![built_tree_step7](build_binary_tree_problem.assets/built_tree_step7.png) + +=== "<8>" + ![built_tree_step8](build_binary_tree_problem.assets/built_tree_step8.png) + +=== "<9>" + ![built_tree_step9](build_binary_tree_problem.assets/built_tree_step9.png) + +Each recursive function's division results of `preorder` and `inorder` are shown in the diagram below. + +![Division results in each recursive function](build_binary_tree_problem.assets/built_tree_overall.png) + +Assuming the number of nodes in the tree is $n$, initializing each node (executing a recursive function `dfs()`) takes $O(1)$ time. **Thus, the overall time complexity is $O(n)$**. + +The hash table stores the mapping of `inorder` elements to their indexes, with a space complexity of $O(n)$. In the worst case, when the binary tree degenerates into a linked list, the recursive depth reaches $n$, using $O(n)$ stack frame space. **Therefore, the overall space complexity is $O(n)$**. diff --git a/en/docs/chapter_divide_and_conquer/divide_and_conquer.assets/divide_and_conquer_bubble_sort.png b/en/docs/chapter_divide_and_conquer/divide_and_conquer.assets/divide_and_conquer_bubble_sort.png new file mode 100644 index 0000000000000000000000000000000000000000..261ccf21bccb4e76bb9341f8dd7e19593ad7d0c1 GIT binary patch literal 24306 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 OU8^Z+DVEDy2mc>TSUddy literal 0 HcmV?d00001 diff --git a/en/docs/chapter_divide_and_conquer/divide_and_conquer.assets/divide_and_conquer_parallel_computing.png b/en/docs/chapter_divide_and_conquer/divide_and_conquer.assets/divide_and_conquer_parallel_computing.png new file mode 100644 index 0000000000000000000000000000000000000000..4abbb183d457e50874eb657b090afebb1f730980 GIT binary patch literal 15428 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 and conquer, fully referred to as "divide and rule", is an extremely important and common algorithm strategy. Divide and conquer is usually based on recursion and includes two steps: "divide" and "conquer". + +1. **Divide (partition phase)**: Recursively decompose the original problem into two or more sub-problems until the smallest sub-problem is reached and the process terminates. +2. **Conquer (merge phase)**: Starting from the smallest sub-problem with a known solution, merge the solutions of the sub-problems from bottom to top to construct the solution to the original problem. + +As shown in the figure below, "merge sort" is one of the typical applications of the divide and conquer strategy. + +1. **Divide**: Recursively divide the original array (original problem) into two sub-arrays (sub-problems), until the sub-array has only one element (smallest sub-problem). +2. **Conquer**: Merge the ordered sub-arrays (solutions to the sub-problems) from bottom to top to obtain an ordered original array (solution to the original problem). + +![Merge sort's divide and conquer strategy](divide_and_conquer.assets/divide_and_conquer_merge_sort.png) + +## How to identify divide and conquer problems + +Whether a problem is suitable for a divide and conquer solution can usually be judged based on the following criteria. + +1. **The problem can be decomposed**: The original problem can be decomposed into smaller, similar sub-problems and can be recursively divided in the same manner. +2. **Sub-problems are independent**: There is no overlap between sub-problems, and they are independent and can be solved separately. +3. **Solutions to sub-problems can be merged**: The solution to the original problem is obtained by merging the solutions of the sub-problems. + +Clearly, merge sort meets these three criteria. + +1. **The problem can be decomposed**: Recursively divide the array (original problem) into two sub-arrays (sub-problems). +2. **Sub-problems are independent**: Each sub-array can be sorted independently (sub-problems can be solved independently). +3. **Solutions to sub-problems can be merged**: Two ordered sub-arrays (solutions to the sub-problems) can be merged into one ordered array (solution to the original problem). + +## Improving efficiency through divide and conquer + +**Divide and conquer can not only effectively solve algorithm problems but often also improve algorithm efficiency**. In sorting algorithms, quicksort, merge sort, and heap sort are faster than selection, bubble, and insertion sorts because they apply the divide and conquer strategy. + +Then, we may ask: **Why can divide and conquer improve algorithm efficiency, and what is the underlying logic?** In other words, why are the steps of decomposing a large problem into multiple sub-problems, solving the sub-problems, and merging the solutions of the sub-problems into the solution of the original problem more efficient than directly solving the original problem? This question can be discussed from the aspects of the number of operations and parallel computation. + +### Optimization of operation count + +Taking "bubble sort" as an example, it requires $O(n^2)$ time to process an array of length $n$. Suppose we divide the array from the midpoint into two sub-arrays as shown in the figure below, then the division requires $O(n)$ time, sorting each sub-array requires $O((n / 2)^2)$ time, and merging the two sub-arrays requires $O(n)$ time, with the total time complexity being: + +$$ +O(n + (\frac{n}{2})^2 \times 2 + n) = O(\frac{n^2}{2} + 2n) +$$ + +![Bubble sort before and after array partition](divide_and_conquer.assets/divide_and_conquer_bubble_sort.png) + +Next, we calculate the following inequality, where the left and right sides are the total number of operations before and after the partition, respectively: + +$$ +\begin{aligned} +n^2 & > \frac{n^2}{2} + 2n \newline +n^2 - \frac{n^2}{2} - 2n & > 0 \newline +n(n - 4) & > 0 +\end{aligned} +$$ + +**This means that when $n > 4$, the number of operations after partitioning is fewer, and the sorting efficiency should be higher**. Please note that the time complexity after partitioning is still quadratic $O(n^2)$, but the constant factor in the complexity has decreased. + +Further, **what if we keep dividing the sub-arrays from their midpoints into two sub-arrays** until the sub-arrays have only one element left? This idea is actually "merge sort," with a time complexity of $O(n \log n)$. + +Furthermore, **what if we set several more partition points** and evenly divide the original array into $k$ sub-arrays? This situation is very similar to "bucket sort," which is very suitable for sorting massive data, and theoretically, the time complexity can reach $O(n + k)$. + +### Optimization through parallel computation + +We know that the sub-problems generated by divide and conquer are independent of each other, **thus they can usually be solved in parallel**. This means that divide and conquer can not only reduce the algorithm's time complexity, **but also facilitate parallel optimization by the operating system**. + +Parallel optimization is especially effective in environments with multiple cores or processors, as the system can process multiple sub-problems simultaneously, making fuller use of computing resources and significantly reducing the overall runtime. + +For example, in the "bucket sort" shown in the figure below, we distribute massive data evenly across various buckets, then the sorting tasks of all buckets can be distributed to different computing units, and the results are merged after completion. + +![Bucket sort's parallel computation](divide_and_conquer.assets/divide_and_conquer_parallel_computing.png) + +## Common applications of divide and conquer + +On one hand, divide and conquer can be used to solve many classic algorithm problems. + +- **Finding the closest point pair**: This algorithm first divides the set of points into two parts, then finds the closest point pair in each part, and finally finds the closest point pair that spans the two parts. +- **Large integer multiplication**: For example, the Karatsuba algorithm, which breaks down large integer multiplication into several smaller integer multiplications and additions. +- **Matrix multiplication**: For example, the Strassen algorithm, which decomposes large matrix multiplication into multiple small matrix multiplications and additions. +- **Tower of Hanoi problem**: The Tower of Hanoi problem can be solved recursively, a typical application of the divide and conquer strategy. +- **Solving inverse pairs**: In a sequence, if a number in front is greater than a number behind, these two numbers form an inverse pair. Solving the inverse pair problem can utilize the idea of divide and conquer, with the aid of merge sort. + +On the other hand, divide and conquer is very widely applied in the design of algorithms and data structures. + +- **Binary search**: Binary search divides an ordered array from the midpoint index into two parts, then decides which half to exclude based on the comparison result between the target value and the middle element value, and performs the same binary operation in the remaining interval. +- **Merge sort**: Already introduced at the beginning of this section, no further elaboration is needed. +- **Quicksort**: Quicksort selects a pivot value, then divides the array into two sub-arrays, one with elements smaller than the pivot and the other with elements larger than the pivot, and then performs the same partitioning operation on these two parts until the sub-array has only one element. +- **Bucket sort**: The basic idea of bucket sort is to distribute data to multiple buckets, then sort the elements within each bucket, and finally retrieve the elements from the buckets in order to obtain an ordered array. +- **Trees**: For example, binary search trees, AVL trees, red-black trees, B-trees, B+ trees, etc., their operations such as search, insertion, and deletion can all be considered applications of the divide and conquer strategy. +- **Heap**: A heap is a special type of complete binary tree, whose various operations, such as insertion, deletion, and heapification, actually imply the idea of divide and conquer. +- **Hash table**: Although hash tables do not directly apply divide and conquer, some hash collision resolution solutions indirectly apply the divide and conquer strategy, for example, long lists in chained addressing being converted to red-black trees to improve query efficiency. + +It can be seen that **divide and conquer is a subtly pervasive algorithmic idea**, embedded within various algorithms and data structures. diff --git a/en/docs/chapter_divide_and_conquer/hanota_problem.assets/hanota_divide_and_conquer.png b/en/docs/chapter_divide_and_conquer/hanota_problem.assets/hanota_divide_and_conquer.png new file mode 100644 index 0000000000000000000000000000000000000000..aeab11a0657c71ffd29f51464f20f3fb01c01382 GIT binary patch literal 32200 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 literal 0 HcmV?d00001 diff --git a/en/docs/chapter_divide_and_conquer/hanota_problem.assets/hanota_example.png b/en/docs/chapter_divide_and_conquer/hanota_problem.assets/hanota_example.png new file mode 100644 index 0000000000000000000000000000000000000000..c45d0e5c5c24f184b5971dbc9d8156d6deea1f66 GIT binary patch literal 12261 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 literal 0 HcmV?d00001 diff --git a/en/docs/chapter_divide_and_conquer/hanota_problem.assets/hanota_f1_step2.png b/en/docs/chapter_divide_and_conquer/hanota_problem.assets/hanota_f1_step2.png new file mode 100644 index 0000000000000000000000000000000000000000..852c897d72d7c676a22ae19d19350a26f14d1eae GIT binary patch literal 9103 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 Vce!MlM86yvU(?XV6kfsx{TJ~&0A~OI literal 0 HcmV?d00001 diff --git a/en/docs/chapter_divide_and_conquer/hanota_problem.assets/hanota_f2_step2.png b/en/docs/chapter_divide_and_conquer/hanota_problem.assets/hanota_f2_step2.png new file mode 100644 index 0000000000000000000000000000000000000000..390eeca8be8b778acd80490a098d889093122048 GIT binary patch literal 9400 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 K%2vuiL;ep4(adiE literal 0 HcmV?d00001 diff --git a/en/docs/chapter_divide_and_conquer/hanota_problem.assets/hanota_f2_step4.png b/en/docs/chapter_divide_and_conquer/hanota_problem.assets/hanota_f2_step4.png new file mode 100644 index 0000000000000000000000000000000000000000..ec75fde61a7df64a788f2b522730dbd7175830c5 GIT binary patch literal 14501 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 Ah5!Hn literal 0 HcmV?d00001 diff --git a/en/docs/chapter_divide_and_conquer/hanota_problem.assets/hanota_f3_step1.png b/en/docs/chapter_divide_and_conquer/hanota_problem.assets/hanota_f3_step1.png new file mode 100644 index 0000000000000000000000000000000000000000..e0fd3f5201640ee9584f000e565f685403d74c12 GIT binary patch literal 9571 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 literal 0 HcmV?d00001 diff --git a/en/docs/chapter_divide_and_conquer/hanota_problem.assets/hanota_f3_step3.png b/en/docs/chapter_divide_and_conquer/hanota_problem.assets/hanota_f3_step3.png new file mode 100644 index 0000000000000000000000000000000000000000..d3b2e1dfc0f25279f277e91e363c9aa37555376c GIT binary patch literal 13132 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 K=?Y1s&;J7?F)^k9 literal 0 HcmV?d00001 diff --git a/en/docs/chapter_divide_and_conquer/hanota_problem.assets/hanota_f3_step4.png b/en/docs/chapter_divide_and_conquer/hanota_problem.assets/hanota_f3_step4.png new file mode 100644 index 0000000000000000000000000000000000000000..95af9ff43a50d38f4484f0b15614b367edec64bb GIT binary patch literal 15960 zcmdtJWl$VJ+crA8i|Z1C1czY36CgM&?oI*(cY-?vT`UkFxO*UYkl@Y|T!OnU7F+@e z!E-jx`+ZekovQPms`uYH^J8YZ`|4Y+zPsn%p4kr?YV!Cv6gU6?;43P~XaN8^>J~hK z1wmb|3OOxN1py5e9ofHs|9<%J;q2_}>gp=8GeWWKP((!JPsE#pKbNmEbc7NjNrFd? zm2tYdx*|FvWIq20X%0RQ*15gCy}!SgmzUq%+=RD=?(XjP_Vykg9%{9HJ-;{~9UVPB zKK}UeV|RD=>gwvRU%yI9N`{7pK7al!E-t>kz1`T@`1R}8w6wI@+1a?bxXjGVsHiAO zNy(+9C1qvhsi~>Fyu5^jgtu?swzRZ}B}FYPEcEyHmzS4MOiVaCI~y7r?(grfudjdl z^hriW=JN9L=lM_X+Am>YVSWwOCMG7Dnwnp}e1XH^?(Xj9=H`E{u9Pwp-K)zS92`nl z7xeV>+S}U|6%|ubQs(F9a~G#gigMM|)J{)NfBg8-)6+74Ho$ce} zV^El#l#~?GTqm0z7u^z--T!TDY%IF7<<+ZKo}Qj{b#=M9xicHcv9*=YLw)eNAm?(Y zjg#Z@(K2gmYl~0jZF6n@^?p02J2qv7dIgycQ{z=rV-c+l_Lar2^3&tmVte;?e1?1U zv-FO=fjg*#i9n4iGMF_|4byBw{~EL9OSes2H(A9R z?kC#-w0|1T(Cx>K$y!$~7W`6qsLaQ^0zQpU+vjr7$?I+9dtSGXh;m&8`1R|`r!CK6 z^+^8MkxKj154b%dG)hyC;mPh5J2VG|+{RnUVYMrDTo~~jf4)S67)Sm;UyYFPI)G!K z2$IzMJBPLrhfH_aU*sZ)=M-D+1JxGUvsq04yNWFZvu-`bw*Tl2EL8a5KHB8 zFIV{gzrkOSq|T!uX=sd0RB#wxnG)Zl8cjj==HlTA`!UR9u(8v;>rh&&3!yhChz) zSKUB2w;d-z4nTA!g@;>)r_awr()^(777&Ns+le8oxsC5E_Na<2A}BLI-`@5M=f4L@ zZ*e4P*uv;(Lj>TG`1ryt98~ZUx(X~vgem#lSbkFUImVS%&~B%+mgNiYzdeVnu)5=)CEF&AE7TOn?8YJH1O8ttJ=`W=1IlD{0+4UH2bejA^$?eR@V2l2g7z(n zr9fQMjV_RznD|kdKgux!5QicBr!&Znm(Jl|h1Io)OH#Hn2@*++GDv9^rA|N`O*G|J z9V$+Y7kWU0l1>X;JZXl3w)0@|1X?^J zvbSC94~)HU=)$GCBN>776fOPN;8cN_sE$qYBAP3N8**&Am z1LRcFRIL(a`w|YaoqiBUe3lkfqh9nMdh_kD{sq#0-VI7mzmD*K^oZxQI{iU25^%$M zPw)9(#^koH5_>+4FxAuCLGjiI_NnYL8Q8jH?=*7k+Pr$m6?UGVeaUVBZvo4r*p&SEPd~)e_d&!7mn8qBdD*iaGZ;jI z!m_f%(;oZ+{{`4P!jRnx=l=}N-JS$4dOF2f?+d!XI`4sUq8=FZJ$tZOu2IMgn@-zr z;ve5!iRg)C4c-YooDz{*e;sq5J6_}78{IjD)bJ_AqU-e^LP!0eGEk3*mLnaYO{bOv z;kLgGjo}G7;Ykbf_ZI_ReiX&6Dc8i1A(!+{A5lZsV0%YunxHlek7U>*a9=D1ygsVn zo=qt}foh_ynsHGQ!a3)`U+nxJgZ`^*0&*ySMn-okSreBpGHSI&!&qkd1}?if@?Qe< zY2ohNuwnRu+ywQH+An~$2^i!49tS)80x#PJq?BVH zLi8VHf`B^b^dG=e6y+T7PecJ&FejrEYc-B#7>-5vPp1xG@?s799QFhX`sdsTxBEWj=0K0!7k4F<(hw6^CXqz60Pd zzY}N1EDG=L1dL@|)L5g*59>rU?egBX_xMpx^l6*uSH7=OQsO%Q-a!I_+J>U+1}tEr5d{W= zMQ3Pd<&Q$WL@|1aSzE&m=hT6VyN2?%??)_c$F|dh`CHHFXbSd7-M(@mR+|Icx+Q24 zn!H?eaiE`AvQ6vRBK@f`4MR5aQD}XU54KB7fr&3m7(CIN{|Q#Q zC9?&RqO#c#(vzIqT1#CDkaV4GLlD6~`_44qDYG&rZpfHfAp|ulm}KP$%OC?jCc_q!^f*qT<)F=plt#?vVX=I za%P^8!;n_dxe3bq#HRHi6$TOw8I*!=0N7dgSBxR5@i;0s0e2k;ZesV9`xxtn(eQ@LV|Nx2D7f-1Ub6=uKxWcsnfI@E61E^` z4j$q#;(``)VUM#_GzUIiYiQyR7+h76 z(focx<>9dxE8f!)SFdZM$(_?SL$0^va!7LrLRB;u%N4eZ-gDZ0Su&$ocYsQ-_f~Ah|4a0>`~-+2;GnWgqd6Dr8-TEdd&IQSFxtJB;_DCW<7sq}rW~%Tl7HdbZ zGA=!fYcbRIU1YWrTJmb$pfc|#D7;5zSqh%^6)z+s?K0{alOFun63 z6hhDIs*&UoDCrK6xLDlQ9T#ih!8+V|NVV`W<-u&`ezt^Oj(GTM0{S%5E3NPYSMw1CN_pn+MXa&G{{5tzFpGNH(2>` zfo&p5Ls~vHbKF#d;GdKGh&LY;w65KzB)#{4oq{Bm8-6m)Bk>X%&#lx>`46vX$bm%i`G%x6FY}ptY zQ}ND(gnzLAA)wTzP?*+95pM75?%yaF`L&nWmY=Mp^sMMVrw469-WJP1CZ%V;gPsMR ziVYf6nHV#li-)5->W*c~7WxU#<+q*|=6=eZ`oUBwW&WV{d(=qjZnm zgdH8R>*3fKRypWGOJjpI8bpkshKi449@AybQv9q*VRz+_glz^ya z|FGQ(kxolV>1KvGlG8>gmqnY96(#!$5Mm8{>M&fzoJb2HL?>#AGJUg3PE>{G7O&_RK#b1y!enP2HBzUZTS?LK zHTz8O_Mg`7g_$I#Ar`%^5dg7+$@aIRLL&!g=r^y3HjRRD8TC8Ng5F`qgJz1pBy z-fh60Q89Ndv)jh&Oc{_*o&a>F7YCkzqRp>G8S(OcN2yNVLe!3q%o>hqA+d#uNRFCO z3`tF*_VWpGeJ6}+@Rh7(2tNsXy{ev{#O!YVhKTy|?qq)eRsKxN}BoONoO(cb~#2gd>a_Vta3%!~xR0#MPPCq^75JT1{ zmyYvauzalp^lbc~*x0QrRpL@!$< zQ-g}HjZelBE$=gr0Q1&EJ3-9%L*E`ln%-b*>R|%~C$kr;cn4U7oHrfbB zx{(!nRV(gxPbHr44U><^6>co7nbmLa5moFCClLCOc?B0i9_|B2RVgNjy1fN%V;R18 zvY(?Tl3{Hb-&cXmfJqoi95+PpLTK;9q|%#eh|fFXZ8pEbfF7k`^dWS_wiZwU!ZX5T zjr<7(8Sx^V9< zjGE_J{EmPXhKe}Ee8vlAFa?Nv9CMny3NgV1lc&&P#-T!h_8f0~pE=U?*wOUpU0xlD zQK4PCDQ89hcS=w)WA(CTjAncurM^%bwmD>v3z1hs+2;+aahU?YQ%BENkxID8#!P-gzgZ!Awmi5b^)m1LivUs_n4s;5{fj5W> zVl>pelSvMV$+TR8v8F*-Eyj<#C#;*49ol}xAI$ZZdP%u8p?`6bU@sKlJa|rCG?TX= z<)`Y6^Snia@qKBgqm@b#WaXY2?oEDiXJH<)yTs!B%l#bZ^6ecPeEj}l4uj`aIw(p^Q*{lL7)IzD z`}KY2R`Ur#0k_s0s>`qu@}>&`h~Bre-kYiI{9}a!ad6d+KX6Rh;Cna}jUaxO+zo~jlW>hJ|8DC%G!+4oj6X50E({kwe#4Z7U%$_z-(NwEWaMc(KVG<@ z-ci#!R7V3;uV*->Op|H%-%`WFHI?(}C>oCqc7 ziZe)j6Ibd;Hl2LRPuDop#%!X$`U`P?NMuPd+(rk!udZ^Z*n6fC&w})#rxrum$X1Ik z1(im2){Ue_!f)P+QVG9ux{V%*n_w3ht@5pwS2MuS_rL$ixLc0{1Fm=l=8H|m|J=No zWv&i*^OZBULD|LHtE#`WGBN4CT42U34v}yny{P_&S|~8 z?nCe!71@3xFaHRA>G)P*#clG=x}7}?DuqS=-=Ac{c?>-j{Pg3Ty{|y)TU$Fq4ep0RsMml+JQd{vJM{2^L1u~7xMEtAZec)6X1uHf8w9c zggsB{RJ0_Qg<<^+O2tP;#f=ock>`x}H|#Cp9=v{0t+U2OQ<`Os6wI6SN?yuvHKd;X z4y8J-KO<~kA-_y8bV8eu^y243<)B_oB88YR?hb`R8zLtx`iHuM)0zAjJ6>X##Z*s> z03w|22f6+vb;qq>3N0d|LrP>35PyX(PFE57T(DIzHjyG|@O~F^%kg4iV=8lhA5)7ZR{fx5 zjjQyYSe~sbh*#-Y<^t>!HS;Y{4Tl!>h(T^{PIvF(8Uz9zF*eHNuxIaOIbYWwS5c7J zfM)QLdV*neDvi$V7)$T!Iy#` zwJ6?R@a311iohMkxtcOyJq+_MJy6Vqk}N9KJpWZAE;s>q7?fmqRUV_q3KB^~C}Nut zFv3M9=BcM|j%eqElVK`#pu3dM+|7po;&MxqzkzRpVpH7VAj2(Q!L_t!-=WmrBWN{I zKLss*6BEUnoNixj7RcIbRty_C(>ffJ4&)`{nYye<8=#^rW&cB*J#ohlB=Th<>8M?P zbSHo9BAoMjsIe^emzVMPWf2h*Q(lwXl)t>O>Rp=?)iZ56#(;p$l-oKG*VNcZQ?bhF zXu`QyY4Y8{F{g)UOIi?oqxx+5bDSlW0KRXBJ=Gsy1BywBu_C7T%q}0}^xgMOZv-8` zxdvq^TNHr>!}jPJxUlHibi74e41n)?F|S+G=%=PX))N-Z!D79Wg@r-66`aV!Vy!Gc zYc9C%3wOBltLJGh95%PLy`;$#O11AY@F<$i;BUXfHyBzp@dx@1=ib=Z*u*&I zoN@11t%vx0%}-uZXCQ{%30hQR(3U{-2C+@uoKG9H4E+4saQz6nI^6NHvJ5?>E0}^L zv6C2$ToaFFZ^VU_V&h^v+fR*{d)&W!y0n`Sz#{`}Q2{0sI!cB&CGh$M{OQaI3`?`y z37@XmR_Oa#do?J~T>d2-Aeh01Q#W8Du#u@+7ZI?R@TKbvE#7_LyqA5|>%4a<`j#2?z=!trNTFQj79# zT!Y}Rot;lLs2$8=0cO7GfpvIe2>b!|O;hA;vH`l6B$no+6Mp`4l9b+&>UF) zFE@LEA@Otw%91!U~KN z?uhlCUSm4#ZBmYP?wTN0=^_pf4ql5M!Cwvw<$ruN5wt^|mbo{jDdlib2kDpFqaM@8N!VDy;XGKCz*IF7T~*h`;`2?{v^dR7zooYn&E zLl&oZ+w~1`g%g|Y%v!!A30nP729zmK;vYTO;gsJuylQO!^jPf82T(O_^#k((olyXur6r-MRh}B@c9=PQyc+R z-f=b@&l}M{$3Q`#U+ddse^2L(!x}M*SK3C-bc5t42@Qa`;dQPMj0J9Nr;3`zRUrTc zksH=K6=z5`P~Zjsjt>NSHzL&FzJ?-*5i_^WhZR zbd2}klDM*a@lK)Ro;cR)K+O9mV9q73$%7V~E6uBhYz`o~+Il!-bWj6JBomr?TkAK4 zXY+#6LB58~KXk26gY7vU>e>x~pxpXFHc0Gy4f!tY%D=|&k@xP+<7nkUW2H>1i+^T! zz=CM>GDT6m6}SYva_ZblXcK()xieKp=un~l-K2~0Ku^t=@L>~$MUbc}c$yHuHyW(Tlvi?Mj1@{~HD&Bh2?-*wgpfu)Ulta! zCjiuf=+h(6ukfdoZcnqJe>p3Evy#9>KULma16{1k2`Dx47vb4}ak)9yPo9f_s$%>hH7EFg~T>&!;D4M zBT)&-&bSY8;cXGD9*I6UpA-8&!&B%51NS@aF339#{1$L|8y}SUqYkq9q0~pe)rRYG z!vEiMt^bvY1=V>=a65i>r5ccUeikgW{em|!EIr+p`T5J(uWS^={3Or$iKGs2-u5*! zC`_Jwnwt5o2PIV(<4$I{oC*z>S}Y1$Q?njbPdbiU4L>^h=B zf?~M@vv|dt0^`c{8Abd30$5os)b%Uv%@rL!24utX9#6^~zmcw`YyUKwDXA;N7vP{j z7}>L$HFWH3!$jq6$`qg#etkuQ0%Ksj_L;EO?MJ|=U`Kq2_UG>v{Y(Q}A*~Z%^ySlP zj&YKmUEM}H3g%|evY@AbL`j4@^UyFBob?GI8d!37hS^CKtndOfz~>i<$}Ugyxl}~6 zHUILdEI9(RuR@#bfYe`GZ#Lk|o$0HCdxfz;`5)Uc3elOflzQbvOgldyZcO-o1q&%( z)Wc6vz|l==LmKc=v{t1sf|0XN5r3k8&xIj(v+@~$&AhQNdFb}}Q`0Yke2LcFp;2*M zDXizL###00etYcxM^i@tS87JIF9$uvcVAI!nnts+222;uo)s)n4BkM062~08Co3~c z;46%T@$oDMpJg26Gcz#Do-sVotdIq2>4JR=os{n=_^dypQr~%C+jk;44sU z^a&sp;BF@7iQ$qb@y%-p?Ixqh@j)HDXWlTJ7}PT8;LTFEQ>)hD;L873TwCq8=WW`l zRbJ}KgH^^Iwp3(yK4-pDwjs>Kg3;5~iB8Qu53j7$?|gem$1O3%Y(C7hc?vJzk3;r7 zn2<`k?#>NdS(+*SC8i2tu@u_-8Ze;|%G8C=>+0&#CQq}ExbM{cE@iE*stOFP?2V|g z`Vtx#tC(a-;=QWQc$uNfC@0U8vvc`UAa%0OQo0+vc*qmKF~!1(`?sjXnf8$|F7(t=9CEJ&v3O)9!a^yE2(RHS6R!;3I(bQg|>lMjFw z(DokDz+yCF`Ud3CGHxuTK`2G!fd)OXRCPo<+rb?0+bJbN9Hw2S(RSsq&57hUp!2AW z@B-N9EoXa|9dEyUE@ep?(x*K*H$>yp<4cMQe*S*qh0M1fMz1Cv zKakRfK|@Q24bO1xbv&Fuxoi&B`MbRUqlraWTM)Q7ORV7K2W`Gi+3DZlt7%({#%z2I z7-Rzv7}*^`7Givms}rdf!3fz7En}*jPTgeFL#4({Q!Wfkh4+)wXhY9zpCwK=_f#g4 zq&}s9R!wM50$(OPo|;u3KPfJo4b9!dF*Q+tyBG{L2bhMgxj9lli4PID;!SH2=4TZp zgeeHwuU^bkkgZk;Xq}?~WQ&lZ*!_P8L2{q4Je(;wI&ZJnvB9 z--AaXse5{lTx&{fmon zd3oB6v&0@fI{E3Do|)A>vk}IOk=;XeSr6^Fk77=~0t{c-TB^Vc7F=NE53Y2!GbSr_ z%ffwp9Iw2dZN^%?VMa{^LGjSTE8?VQsbr;)Ho3KRe$3{pB}VPSjUktLs{8}*A3zp6 z{$D9z{n_xWCp$bSt^(O-pN-OtELa?yR zCPdlz3RDUYD{tr-zT*soQ1r_;41fsyteE@&3#pO%>W2-R=-U1Y!HBH;6gJ(|cF|1- z2yeyTw~SRjq3%zVn{ROg_=-Ry+2l|l3g{95lRw?6DMhD&*yU;maP=39rZNnHh0(R> z7eHY+rv6!$LcmCkT9)LE(I~=gG^3gTSuZ)|-+Xjm#Ciw{Cnu)~)i!XVq>5(z-mrEH z@*Ny%1p0?L&@v*rHv|u8XZr$!-u0 z;=?kxyWCI+25e;FEPsU1VFe-}6^*%?3G%NgPvRnJM99r79@_cR_e9zKZ7u_yU^cZ| zes(?Tr?!j4AK*oC9>zggjGR#7OWY%dsZs`Ru6l#7M%P-03FzvH=tzyPgAZXYSvP{n z-&_%Tjt*&?H&p-|S?lx*ym?$5;Y<&;H9*Wg0HFKl&uGQwo>1jV>WP-IO=%A zw?b6rLRwf)9t{v^i6u`=pKXSX6Vmr~snQvQZkZPPJbI;BviO9<@EZ~L81*51DnehPOzI*}3!O<8$- zQ$Xz2&iuBw&m$*tCiYa;r=6SZugP>Cm0dle*ZF8_ltOA=p^uzWwx39vb=kAhCLUwX z+UpK-&3gx+Q_VQmQmW>So4p{m#^~_B7`?#DyyTO-9q*XnJ64>6ApUkcbMvYCh5SN8 z{)I`P*)L6h#)QB20Qis7@*%d05)k{PYFHQ8Ru)rZIuQHnnOZfi)#-{)`ytiC$I5Tm z55!|m>4s}WWDjJ%)OypojCaYT!udW!O+H_U>FuJuIy`lccc-6d!XUTj1jz}=bM^j_ zYbO^$LHuW<@t&QS{ty8h0~oO|Jo9oCneYX&_viUWf>#9m$Pbq?t=Tn$X!B81!Df{Z zE1CNgA${QJvnE~D=U6+O(pT80!s53I1k0eKL~YdP*ql7~llqhBNXUT3oEmOc&1XpI z+i`q~2DQLH^$nXe(?d!?4g`ZeH8{IQOD07dL$#fI7K10Vx=9ls$)d>;QEn6~t#3+| zYVE7Cc1fyt4SUM${}tnHI*A!@f2V<;-}9IOf1vWUp6jX8fO)7k??0;@@{Om6 z3oQL%+FkPB6iE=yw|MwIMLZwlVEY=2Q0MJS1%DwOrBc?R2ifoi)>$+c!lFWM0i}gj zd{e%(Wx=ko3_HlexK2aZb3NZaoB>3=Y*BlF@d>bZs}dO7XHGOluBuHk(&9p2z*j*ptZ%KY>3cylR`?16YU?R4 z!v?pMBCFFHY=&Dald)a(DG_{11Lm7axQMr^Ko6euKJqdEq{DDnlMfa=urTMt_852v z7r|JJrqJGYxE@J+V^+yDNa;llQ}tuks1`%T%oAptiBW;jHV?)g?CP}lw1JowRS{r4 zQPNEuL@qSL+z41NJgR>VcR9|9@{k4yn=!1iEdHSJh^uIqzXf_!iUd!*#(CF1`u@BR zz?8n7dXn5ESJdi-xm9hp57*i=^~*b&jYDK!8X~j=THwWUio)^P7{z-cbUkY6wUos% z>G8`XUkhTn%#==4v0OiHnvgXo`t56}0=$#8SwyB^HCWrp2GIAT1rrVEf8d1UvTpra zIpHHjGS3k+KDC`$UJpX}1a+8RrPSUHNx#fLY_|_MpRffSA3t|$$^vArL{J|pDr~@f9GdC|mPM9#om2~$ z#sG>+?Hg^>I+IIzC`FFz!vim@h+cc0PY(w#w!Lk3w~-02gi-&rz_{mOx*}DO zQlfAG$-S+(jl;IGMTE;aCg1&=$SX*K+ZsuNTUWwe0&3~ta;&XjM1>L%EtPGZKq5tz z3Mrkz)F{I^12>DWL#mv>J_*mA>059%PxpSdK-2iEL6^Ms1icEeqEJ|D8|Q-uW(M-1 z7?)hJhGQc{w7{9d;u9AT@QW$f_|gDvVoF5mSQx$(ojRtrOguSvDdh*{aPUpDZI{)~ z+WK4=?Mcc8T6w{8W%#Z|?7P@YxL<(=C888M&pN_1eJcrtfJ%38Ri{SN9{|7c9i=|56ioie(Cd_7cQa)dSzXD~AB#EVJ^_ z9jp8n?cR}RYgTvHkGZeu)57#S1QY__5XmDN;%RV@p2AJuY@NALv<3zd{Gj$>>z%$u z>4YKc3jvVfkC*U_K?)&k30;E|Y-DkF8+%`MK!4;DSo70p-a5;Cv2LdHIiHtXf1$Xp zRL9%#6pwCbMKB|Iige4vwbiH*CbPtpK&SuyoHQaLe@%rJsvPGLYsd-Xb2X}^m9Se6ZTIcVt6y0H)3CH*aYGLOC`sXup<=t;fEcoPp>$%AZ+>p~J?c^X zwVhMPB6h_sEV8UMe3D96YH%4qpi!Iba$~(dW=Wv~6Yl|ungQR1CTEBmzOPlqGO^=k z-oArBqwl{3Uuhouy))1AYo!(Eg8z{(+Fh?Ke^^QhJ$nxFXY2Ryi+yErC_o?O1UhQ@ zp@;U&jt$<(o+af!L2x-A^WBpB^?KA|wt{}RN>uYxcy4BaO)i97qZ5~|8%snH(47lc z=+qy@ejZItPcP%tCk7X+dvZz{+*9t~Prx=%4XzIKZ}`~QKfd}W6rx8|ur_p}(&Iaz zo#23vgKRk5^MJy{M3{T$T}r~6YA^M5C->@o%u2hGlGe+8<&CjADxwJb#U}X$#z1(i z1jw`Qr)<%R^lr3T3$y8@L(INtHD>8Wcgx0r=GUjq7y9Dp{t~ElOyH)B_>)P)vVa_I z)3O_@)5uV>W6<@7pUaohUAAiN6BCIhq(jN_zyPTY8-*{1M%H@rwV#GuL=3cSLg(eJ z9R9cIZ+)B|lfJg{WF9oZp-~V){|QOjI0~PI@6CT~LXyLnw(*d0nj>Tura+hINeTFB zXp1Kdn_la(K7+&iZ{5z$quh8LQ%x*azYg2{&_Gocb0q~kmhEq~(QiGhxL!rM8lw~N z{PRb`&FUxp5~-6|`eKcAZO3wdZd=>&?jP^7n%PUczj0kP>uR_Bn-7gy0lk}yZ2Kb% zo*gkPq?uV#7QXaGvby7QJ*6g&*0q|V^lKQz9#n{p&{15>cvoOt#L`I+9s?mqBeMJp zvkc1#LbdgP?pSR9>((8VL5vxn69Cxb3u}L%c((<(0Rh|JutfgCMfs&tgb_0`Y7KtKDumJE?ey>F7RFcvkUN!dSO6L4+^}C{6_yI z^s`vJk_XPa6m2a*xG35!`8t3BiEn#@!J$p;8GpIw02UnG_f*K2Y`EEap>Z^6;-8vfcTI``fzSnN6K7Xatp#&GE5bp zK9dKhGmWI+vF0F2@@+n@FlN5iv8RIdr%M1W6(Nrdcuxf(dh|o3p~)HGw}o@GFrJ}4 z)%Z8w1zKT{LGs&Ec=k=GZqOo~BJXz`1^Q{ehEVj6(K$s4ZY=PON}q1E&(Zqv^*jo% z2f)%O^V1Jy+ppuZFe~f@cG3lQj?m2Gi&=r_TrYYf-uKsSuCJV|B?_9E_BCY zS2C{#UJ&X?!^}XvNi!2n6_kgz&A{e08 zstp=l6I7>l{ciAa5%*@ljHckBGU!ftXUXw7##!#gNpDj(V+H1XtXGE=074e1VY*zj zc3J$qazD4)Teq_{dmiJw|9hgtre`*y+}C?&P#QS>Otlt#rI_bRj0U7`$N=7B31NRW zXE$y>cH&fzUbCG-Y*$v#lh)|rKn)&2p6@Nv`9)g(Ra%u@r)Ur;RvrM8k zv>@cNcYjcBL?g>Mr(ZN=;e8@OcrKUviG3(|iz7~nP^DxIu-sdP&3;?^&_+kU)MmYS zrbDOwTs&@qHgec1o|_Mz{S*%TZS{*!ciD9Z%|C)C9FX$NB zLQXFa@gnveFPP4OI zslLVsm!|cko99r$xRDeX>yXnIVG=V}VXo4r5fe6~ibZ>;((pwF6$lQQ46js|hBM44 z5SbYJDggVV7%QE+FElR9j}w%RfcG=~LdRcrG}XkXM~P6h+UO2dmA-kU5|IH^4MjIN zFvCSQV^*g!Kia*)WmW|mq9S!(Hc@Gf)%OsIL(t$|bgQTHZ{vM6VE%P+#9X!&ZT#&xkBtwO=~E%c-OE;e#2nHvv`EZW?{|OktXcm2t}hznSmxfiWdE_p(az$ppGyZf zS*#2t#xUc7e+&AVt*rc(PJzki08A2hf_$jhBgNjneeWYm-g|oc>_Q@EQcYD`9ghyL z&|$w(qVQ9@R}#WX-ySIRNx4ohsLZC#Dg90T|NK>%uAhs-zgD`vzxF2S|Am9gmb#>$ TX^XUI|0^rXs>xJInTGsdKE^N5 literal 0 HcmV?d00001 diff --git a/en/docs/chapter_divide_and_conquer/hanota_problem.assets/hanota_recursive_tree.png b/en/docs/chapter_divide_and_conquer/hanota_problem.assets/hanota_recursive_tree.png new file mode 100644 index 0000000000000000000000000000000000000000..cebed6b1ce97616c4c80551953650c9f0ef81ad4 GIT binary patch literal 18093 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 VY0Jr~sSf=h0Z&&ymvv4FO#qHUnTr4b literal 0 HcmV?d00001 diff --git a/en/docs/chapter_divide_and_conquer/hanota_problem.md b/en/docs/chapter_divide_and_conquer/hanota_problem.md new file mode 100644 index 000000000..64008eaae --- /dev/null +++ b/en/docs/chapter_divide_and_conquer/hanota_problem.md @@ -0,0 +1,97 @@ +# Tower of Hanoi Problem + +In both merge sorting and building binary trees, we decompose the original problem into two subproblems, each half the size of the original problem. However, for the Tower of Hanoi, we adopt a different decomposition strategy. + +!!! question + + Given three pillars, denoted as `A`, `B`, and `C`. Initially, pillar `A` is stacked with $n$ discs, arranged in order from top to bottom from smallest to largest. Our task is to move these $n$ discs to pillar `C`, maintaining their original order (as shown below). The following rules must be followed during the disc movement process: + + 1. A disc can only be picked up from the top of a pillar and placed on top of another pillar. + 2. Only one disc can be moved at a time. + 3. A smaller disc must always be on top of a larger disc. + +![Example of the Tower of Hanoi](hanota_problem.assets/hanota_example.png) + +**We denote the Tower of Hanoi of size $i$ as $f(i)$**. For example, $f(3)$ represents the Tower of Hanoi of moving $3$ discs from `A` to `C`. + +### Consider the base case + +As shown below, for the problem $f(1)$, i.e., when there is only one disc, we can directly move it from `A` to `C`. + +=== "<1>" + ![Solution for a problem of size 1](hanota_problem.assets/hanota_f1_step1.png) + +=== "<2>" + ![hanota_f1_step2](hanota_problem.assets/hanota_f1_step2.png) + +As shown below, for the problem $f(2)$, i.e., when there are two discs, **since the smaller disc must always be above the larger disc, `B` is needed to assist in the movement**. + +1. First, move the smaller disc from `A` to `B`. +2. Then move the larger disc from `A` to `C`. +3. Finally, move the smaller disc from `B` to `C`. + +=== "<1>" + ![Solution for a problem of size 2](hanota_problem.assets/hanota_f2_step1.png) + +=== "<2>" + ![hanota_f2_step2](hanota_problem.assets/hanota_f2_step2.png) + +=== "<3>" + ![hanota_f2_step3](hanota_problem.assets/hanota_f2_step3.png) + +=== "<4>" + ![hanota_f2_step4](hanota_problem.assets/hanota_f2_step4.png) + +The process of solving the problem $f(2)$ can be summarized as: **moving two discs from `A` to `C` with the help of `B`**. Here, `C` is called the target pillar, and `B` is called the buffer pillar. + +### Decomposition of subproblems + +For the problem $f(3)$, i.e., when there are three discs, the situation becomes slightly more complicated. + +Since we already know the solutions to $f(1)$ and $f(2)$, we can think from a divide-and-conquer perspective and **consider the two top discs on `A` as a unit**, performing the steps shown below. This way, the three discs are successfully moved from `A` to `C`. + +1. Let `B` be the target pillar and `C` the buffer pillar, and move the two discs from `A` to `B`. +2. Move the remaining disc from `A` directly to `C`. +3. Let `C` be the target pillar and `A` the buffer pillar, and move the two discs from `B` to `C`. + +=== "<1>" + ![Solution for a problem of size 3](hanota_problem.assets/hanota_f3_step1.png) + +=== "<2>" + ![hanota_f3_step2](hanota_problem.assets/hanota_f3_step2.png) + +=== "<3>" + ![hanota_f3_step3](hanota_problem.assets/hanota_f3_step3.png) + +=== "<4>" + ![hanota_f3_step4](hanota_problem.assets/hanota_f3_step4.png) + +Essentially, **we divide the problem $f(3)$ into two subproblems $f(2)$ and one subproblem $f(1)$**. By solving these three subproblems in order, the original problem is resolved. This indicates that the subproblems are independent, and their solutions can be merged. + +From this, we can summarize the divide-and-conquer strategy for solving the Tower of Hanoi shown in the following image: divide the original problem $f(n)$ into two subproblems $f(n-1)$ and one subproblem $f(1)$, and solve these three subproblems in the following order. + +1. Move $n-1$ discs with the help of `C` from `A` to `B`. +2. Move the remaining one disc directly from `A` to `C`. +3. Move $n-1$ discs with the help of `A` from `B` to `C`. + +For these two subproblems $f(n-1)$, **they can be recursively divided in the same manner** until the smallest subproblem $f(1)$ is reached. The solution to $f(1)$ is already known and requires only one move. + +![Divide and conquer strategy for solving the Tower of Hanoi](hanota_problem.assets/hanota_divide_and_conquer.png) + +### Code implementation + +In the code, we declare a recursive function `dfs(i, src, buf, tar)` whose role is to move the $i$ discs on top of pillar `src` with the help of buffer pillar `buf` to the target pillar `tar`: + +```src +[file]{hanota}-[class]{}-[func]{solve_hanota} +``` + +As shown below, the Tower of Hanoi forms a recursive tree with a height of $n$, each node representing a subproblem, corresponding to an open `dfs()` function, **thus the time complexity is $O(2^n)$, and the space complexity is $O(n)$**. + +![Recursive tree of the Tower of Hanoi](hanota_problem.assets/hanota_recursive_tree.png) + +!!! quote + + The Tower of Hanoi originates from an ancient legend. In a temple in ancient India, monks had three tall diamond pillars and $64$ differently sized golden discs. The monks continuously moved the discs, believing that when the last disc is correctly placed, the world would end. + + However, even if the monks moved a disc every second, it would take about $2^{64} \approx 1.84×10^{19}$ seconds, approximately 585 billion years, far exceeding current estimates of the age of the universe. Thus, if the legend is true, we probably do not need to worry about the world ending. diff --git a/en/docs/chapter_divide_and_conquer/index.md b/en/docs/chapter_divide_and_conquer/index.md new file mode 100644 index 000000000..178faf240 --- /dev/null +++ b/en/docs/chapter_divide_and_conquer/index.md @@ -0,0 +1,9 @@ +# Divide and conquer + +![Divide and Conquer](../assets/covers/chapter_divide_and_conquer.jpg) + +!!! abstract + + Difficult problems are decomposed layer by layer, each decomposition making them simpler. + + Divide and conquer reveals an important truth: start with simplicity, and nothing is complex anymore. diff --git a/en/docs/chapter_divide_and_conquer/summary.md b/en/docs/chapter_divide_and_conquer/summary.md new file mode 100644 index 000000000..923f6f497 --- /dev/null +++ b/en/docs/chapter_divide_and_conquer/summary.md @@ -0,0 +1,11 @@ +# Summary + +- Divide and conquer is a common algorithm design strategy, which includes dividing (partitioning) and conquering (merging) two stages, usually implemented based on recursion. +- The basis for judging whether it is a divide and conquer algorithm problem includes: whether the problem can be decomposed, whether the subproblems are independent, and whether the subproblems can be merged. +- Merge sort is a typical application of the divide and conquer strategy, which recursively divides the array into two equal-length subarrays until only one element remains, and then starts merging layer by layer to complete the sorting. +- Introducing the divide and conquer strategy can often improve algorithm efficiency. On one hand, the divide and conquer strategy reduces the number of operations; on the other hand, it is conducive to parallel optimization of the system after division. +- Divide and conquer can solve many algorithm problems and is widely used in data structure and algorithm design, where its presence is ubiquitous. +- Compared to brute force search, adaptive search is more efficient. Search algorithms with a time complexity of $O(\log n)$ are usually based on the divide and conquer strategy. +- Binary search is another typical application of the divide and conquer strategy, which does not include the step of merging the solutions of subproblems. We can implement binary search through recursive divide and conquer. +- In the problem of constructing binary trees, building the tree (original problem) can be divided into building the left and right subtree (subproblems), which can be achieved by partitioning the index intervals of the preorder and inorder traversals. +- In the Tower of Hanoi problem, a problem of size $n$ can be divided into two subproblems of size $n-1$ and one subproblem of size $1$. By solving these three subproblems in sequence, the original problem is consequently resolved.