From 89695f72ef4bf48bb48786e3a95c966f70bf4e3e Mon Sep 17 00:00:00 2001 From: luzhipeng Date: Tue, 25 Jun 2019 16:50:08 +0800 Subject: [PATCH] feat: #33 --- README.en.md | 1 + README.md | 1 + .../33.search-in-rotated-sorted-array.drawio | 1 + .../search-in-rotated-sorted-array-1.jpg | Bin 0 -> 54422 bytes .../search-in-rotated-sorted-array-2.jpg | Bin 0 -> 78466 bytes problems/33.search-in-rotated-sorted-array.md | 122 ++++++++++++++++++ 6 files changed, 125 insertions(+) create mode 100644 assets/drawio/33.search-in-rotated-sorted-array.drawio create mode 100644 assets/problems/search-in-rotated-sorted-array-1.jpg create mode 100644 assets/problems/search-in-rotated-sorted-array-2.jpg create mode 100644 problems/33.search-in-rotated-sorted-array.md diff --git a/README.en.md b/README.en.md index 81609e148..7a7d5a92d 100644 --- a/README.en.md +++ b/README.en.md @@ -132,6 +132,7 @@ The data structures mainly includes: - [0019. Remove Nth Node From End of List](./problems/19.removeNthNodeFromEndofList.md) - [0024. Swap Nodes In Pairs](./problems/24.swapNodesInPairs.md) - [0029.divide-two-integers](./problems/29.divide-two-integers.md) 🆕 +- [0033.search-in-rotated-sorted-array](./problems/33.search-in-rotated-sorted-array.md) 🆕 - [0039.combination-sum](./problems/39.combination-sum.md) - [0040.combination-sum-ii](./problems/40.combination-sum-ii.md) - [0046.permutations](./problems/46.permutations.md) diff --git a/README.md b/README.md index 69fcd9b3d..a4fa6669b 100644 --- a/README.md +++ b/README.md @@ -132,6 +132,7 @@ leetcode 题解,记录自己的 leetcode 解题之路。 - [0019. Remove Nth Node From End of List](./problems/19.removeNthNodeFromEndofList.md) - [0024. Swap Nodes In Pairs](./problems/24.swapNodesInPairs.md) - [0029.divide-two-integers](./problems/29.divide-two-integers.md) 🆕 +- [0033.search-in-rotated-sorted-array](./problems/33.search-in-rotated-sorted-array.md) 🆕 - [0039.combination-sum](./problems/39.combination-sum.md) - [0040.combination-sum-ii](./problems/40.combination-sum-ii.md) - [0046.permutations](./problems/46.permutations.md) diff --git a/assets/drawio/33.search-in-rotated-sorted-array.drawio b/assets/drawio/33.search-in-rotated-sorted-array.drawio new file mode 100644 index 000000000..463024edb --- /dev/null +++ b/assets/drawio/33.search-in-rotated-sorted-array.drawio @@ -0,0 +1 @@ +7Vtdj6M2FP01fkwENubjETKw1WorrTSqOm8VA06ChuAUPJukv762YxLAzO5MmwSPlDwkcLGNOef4+vo6ALTY7L/U6Xb9O81JCaCV7wF6ABB62OHfwnA4GvwAHQ2rusiPJvtseCz+IcpoKetrkZOmV5BRWrJi2zdmtKpIxnq2tK7prl9sScv+XbfpimiGxywtdeufRc7W6imgd7b/RorVur2z7QbHK5u0LayepFmnOd11TCgGaFFTyo5Hm/2ClAK7FpdjveSNq6eO1aRi76nwPfn68uQ/fcu+RtV65y6f/vjy90y18iMtX9UDu6q37NBCUNPXKieiFQugaLcuGHncppm4uuOcc9uabUp+ZvND1R6pGdm/2VH79PhcNoRuCKsPvEhbwVWIHVpM1fnuTABWpnUH+9aWKspXp5bPqPADBcwHQIIaSN7kIJ0GiCkgIQ0kf3qQTFOSo4FkTw4SMk1JWAMJ/j+QlkVZLmhJa1kXLf2MZBm3N6ymL6Rz5dnHDrYuBKtp2nM1WNHk2nNM056ngeRMD5JpSvI1kPDkIGHTlNTe/3KhVZ42a1nWPvmuNiSFV4q83KlB1J3WZ5wLHAjnuIcswl5rmQxb3dcZMCF4JiKlO7zpZwVspKYCE6cGEzUF9emBpfWK8PuG3Kzriz8/60PTd1kVrcjAvylTWharip9mHC/C7ZFAs8jSMlQXNkWei9uMctFnqzcHLWnFOh4zSRD/KLvK5MALeVDs9xm07TEGgxEGEb4Wg0bmThzPQK1DDanpEyh2YCJSRmZRjNSUiakUaKSm9HwKiF0QLIAfgBiDKAR+AuIA+AiEvrD4PvB1V2boBKQmGr5S0CYkS34uFJhqg6AT1HeotR08MgddjVt9fSS59UBo3bl991SgBYhGcKuvzzTetrQQsMc/+JM2LXPtPlMPUusd9JbpMym/06ZgBR3l9NugwDNljG5GSGd0O6YN3rWt6PlmvxKbhfNNk6VknpNtTbKUkXy+pQ0v+ZfcuNMX65YVLRJ4W21gNBz3HSff0Qa8pUtHeugJYg8EDohsEDty2PMfPty5l1fjPgERArEPohhEwbsmgJhX4WUWsp1IehQXhA8glC1H3Me4/QZ/5XWO3QgT2UXeIJadjkDkiOp+LC2+LPwg21mIFu6+qhdiaHrErjumR3dEkMHVBKlH+A1fzrI7eYP86sCVOHp+1RnhDV6Nt7H4YehIoByLlhzTylS9bhqAoyPHmFfjt7d0PwHHXJAjPEbo3WPQ/7DnP5AP0uVz43E/EqOMT0R80hCc9/XDMRfqEVZfVHpLZ6TKf6IylTcTdQIQJHfNXXa+6W8JOd7kmtOz8QjNG5LW2XpWVLOaMhFLzhpaix8eS6aHT0aqzJoOSPXi0I0vNQ/5wwWPj/FIEIHGJiPbuhqz+u6BGtvQLQVdzzU/WjEJgm759BSfEuiXWLdALRVlj61pbxpuOPqmx/Qpc4iHSLl4LKK+7R/F9BXe9ClzZJmIlL70mD5ljozUlL65MH3K3DFSU/rmwj2t+nHHqkUZHrQnT6s6I9shQ97aPGWxkW8HdAkcz3T+MkEqU6tRmr2sJDfdfyDJDy8ibxY22+NbDIKDtD1ZFntBYKT687BmTLz+EAokYJLlFZoXGa2WBWe9nmf8jjDJU5byH2Fv+O+yJmSG8tmqpE1zmMm08ZKLZiYKzBoRYyUul33yQErCyHxbrYbS0f9ydkMxofZPOK2URrNenqMrqbV9QEn89PxehrzWebkFxf8C \ No newline at end of file diff --git a/assets/problems/search-in-rotated-sorted-array-1.jpg b/assets/problems/search-in-rotated-sorted-array-1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b5c2901eb50fe2b655eba04ef2804c9bd9336798 GIT binary patch literal 54422 zcmeFa2|SeT+dq7bu`k)lI)$uBk~K^!gk&cQNo5OVmt{(pEOAE&St5HVYt|`ic3F$U z5ZTRG2V>^FO!r;x?)&%tfA8~o-p}Xv{Ga>MHFJKhxvt|n&*R*V^Lu=cGr~v0IKZH( zrlAHvAOLV4`~wIm;Iyij-Aw?{)&@iY0H6dQA$9;Mm;!GBIKdMDNYY6DxIz-22K^%q ziP-y*un5TM+B&;AyV^S6J|uPQI3RaMLz{F@0(cP9M~F#=ex8U=Q9v>2>^-Wd3)nOM zgbAA48fVX1>gwyLX?v+z2ltfg$sv_PMnlHp$#Wq{_p#6yyXt+jd<*}9NN3KXD@=^ zeBjA#zG8b=uh}E;5I1lRPz5f4e}@1g-~@0IkOV)q5Agti+YK*J7XWb9`L?%6XEC2_<3-ANNfH;^p8Q>If8qBjMpaU2J zrho-t4cG#XfD7OW_yYHVU?3d$4TuF2fm9#^$N>s~VxR)30p0=4Ks(R_3;-j*I4}jw z1886a*nvPG6c9QHGlT;IgB*c~K~6yAAj%L`$OVW##1wKBVgqr4xI=s)4)2Wf?TfP8|WAhVDa$TkU-gqDPbgoi|sM1n+)M1@3)#E`_C#D?S!$z75_ zl1P%LBOjq)H=!<2e`pvq4w?=v zgjPXYpncGB=mK<$l$?~A^bn~y=_%6lq(-FHq<2XDNh3%TNpnccNgGM~NKvF{Qal+Q z88?|2nF5&x*(EX?GEcH#vN*CVvNEzJvH`LwvJG-_ayD`ya#`~84||QRq-uQMgeAQzTHlq(D;iQcO``DQPHSlqV?FD9tFHC<7?t zDDx=mD0?ZtQSMMNP#vLCpwgkbPUTG%MfHNJimIDxifV_Nky?maiQ16bp87uZQ|dzM zChE`Bt28t;d^GYjdNg)4_h_EdyrOwegQD4@Wug_OJxhCq)}1zzHk?I+q*IyyQ* zy3=%KbZ&H!bh&g5bfa|G1I!1G9nd&%{Q%-X(t+{=y$6=)spyZ;tI%7}-=&YEFQM@FlLxC%ntShhJ?)>Vm+jC=+>d9hZ+x|4|5+rf7t!-^TS<-cld<( zjQ9fhiuk_pQ}fI5-{gP7U(b&gfC*>|_zL6;3?HF7B6r00Nc@qOBb$Okf+m6?f)#=@ zLI;I3gzgIE3w;)*6NU@l5l$EG7aZs5tSCT6-^TD79$ap5wjCZ7W;6N z?5O-vr=#gdhs0^cRm45S^Tkoe*p6K|7I3WM*ph^Rgqg%+i53a`ap~i?j=wlQBFQAF zDH$MHCAo4!^n~?^q!ay8bW&9 zRzUWu>@(RRITkrxxd^%U@?`R7>cr3T_I;3d^U&PdS{*J2j&yqe&O zclPZ$=sERsVduJ3nN*Eb6IDmm_|$CF^3~Al(&|3yZ_ksR*E;|B{E!BZhP6hn23k{A z(@(Qei&o1(D^Y9Wg6IX83su@A+M3!i+Mh2Tx#)DULI=>%(23FcqAR3(N4Hv!Tu)ao zNpD(TQr}m<#emts(jd=Z!|;q@l;Mbxu#vk_y)nJ<72{mvO_Osb(I(@UBrf?~YB%LH zwKIKVMqy@bmSwhnS@m-4<*6&uSAwq$nhTkGnYUVSTHLazwWPPSvMjkucGcu+-c_8H zj#awV`ZbMf&#s}Z&sxV@&tE@%{mJ#&8%j5#Z+yF{bTj(qjE#~_jLobq+&0d3!S1YG zq8-NmynU+urh|?{wgcgo$*m$sO2?~?l}=1f4o;2Eyv|2f3p>ls%F>u%5=AC0>kPPF@|}qTZq2-|nj2&GaGlvG%F= zJ?wkm7v-no_uL=if6c!h!H)<;Ox;tzmvf)`zQg^_fa3wt0c#IT9#jSL1l|jr3{nru z4?Ym=5tSu-$HU{oaS_%LZI2`$J$*!oycyXQB@>nM z8~JZezYRWyKhB9}jJ_K^8KWIj{^Zb;uqSJ=ma(mIC*xA%spH+_$Ddw!`X)gj;kN`_ zqHW?p(wU^9XWY+1pKT^zPwq`Qol=;}lNz47oo1Kz@wxi*@^r!UxD4_PkBsRT#xGhj z^8gpfHbMv_KqVh@d-ScN(UU}J5aIWA@p?Kl*BDSLNSHLUx zS97ngz8);rDy}b)D=92JQu?fnxh$+4Qtn-juCT2be`EUQL#1YAebuR|vg%{i*)@l2 zl4@CNqw1*Z0_zCKyU6vox8E+jvw1gJZ&^RmaH*lcQLnM9Nvr97vs!aQi%JXfz0&)d zR)yBeHo3NncA56_4(X1vPU+6FE}5?KZrScPJ@P$O9~3{-^}>7K^_}Z$?$_vVAGkR1 zVbEysGJ924)i7T z6vhQZSczEWSj}ELxmLffyFR+%xUsVthULKKY{_l4Y@2L<+wsIv;GXV^>{j8m@Sh2e z1j21A7b~JI00louZh{u^3TP+LnF0WF4``Pi_-?Ba?|^)_FTwPlrL%YL9lxZ%+jGQU zWB?%JEdUta1Aq(QcLMk=2%hw(0YDc#4Nn6kQc^!o;QQfvQ|bgU1)-?`0J1m&Vbufx zC`15YcZfjPsUQ$`vp`#C7y#aGe76zz?q+xi0BPRGPncX7Iu$;L6_&Fv2nb+@F^*^8mq^`LHP*Jn7ALQUXA}Ay*B6?C< zMpjN<;p{n8HTClvng)hO#wMUiW_|s}O&eP~dsjDi4^J=eyAJ|`fSv0K}F<$?gv@5TC2vR}%@2$qY4loU!zu~#k#i6?kM8A-_wOOi9G=uueRVdgt= zpOWRwNXt2*82eMTe*O0gi^<7Cia7rTyb2>n$(;3@jH;q@#T!XA5?R03`Mo zwy&%xgaM(2*27-@sjHm?pgyQF$`-Ya=$0h_)Cmb5De9W6@wQ*x(x_)$VVw=@@V8?q zy|NC3eFO?WNdTaCi^?vmStdR1@4xUvY!B388Xg}q2fvT3e>Nn!s0i2DnkE1!{c4H! z_j4kq@phm*O5Q z>tVUyb(Z*3vK8@N=ZF#k!+)yapDOsL7yQ!;{s;Afs71+b`0fq@o$*H^cT*xK!(}@R zAoT36-molFf4dWf8_aaKjKAM+NSivVhih4aubRd7E#X>n(kO}x``*r;$y?+;@FXHt zWGhOORatM9_X)sP)cJPKUeIXA(3k!V0qC@wN%fgl(mvOUkA-#kgL8>=8r2t*sd0Cf zm-(e=1p^-C<&L{yu0n18*1h*wjXWYLG|w4rz2VWOP89~F+6#?tMH!r?{U<~JXy~6d z^iMDQbsVDdC`!w)-==oz-gv|XA3g~oeAvY}5&-+C?9YhlGO?{xiHqs^(tomK&u>cN zYT$aHg~$Rq<(;H+@rgu2soSicbcc@)eIMQ%iPf!;T;%@UoIOpiBQ-tS->;2a)LYvd z5(6uvrcv9e=TG{t&O@{9sMJBAQ&53kQJ1Qv{(!0Xi8`fcZd?%WP4O%Sp9L)lY2%0rMJL+!|sO&`v+0jicy;JZ+LYc zEdr3xro*6F?B72|?-6_uZ4*(IYq|9h>)KDfec+z5pEBQW9wk4Xbva;*0OYpl6M$)# z`x6qwX#gB$ft85be&#NLw-K8W6^4HMFaaA*v%!mR25iX_fXCl&e(FvDhSS=L!4*Xv z+NSNLBmtm`%={d+9j}x>VzH`vikx@mOeaR)zT0}rS0sRXQ!b5l2-z0!#vL! z$mvFV7VE9n6o=wG`z(;wPzuO?^>?{S-O)m{D)hn^T+u@KOfz$zUBGu+QFX@CpmOp-I!CFrs7lkI09h$1xQqhz3dY`>c8AfT=*!f!eGk%NL zDeXUd#-yP`)7#{A?opOyTFFv!=a>0!mFWmTt15Pp09Yrd;?t|>fHVJnYK1mhmYoI= z^|feA*t*=DC9cb)$55A|JLB)_^m->oYSKTv=+g{d0<9k6=p?aNXj3kuEKpN@Ca#;L zP2j}L;M9Se+DT`Fxr$Aoo_(z2a2CYZbgTjXo!JmRsxLp4U6#|aX+C@U?iL$w@|6o# zM&@Q_4!z=QC7-RZ&oKul@gn9z4^p>iy9q$s9DNi0!$w8|Kv@{my{l$J0H)k;>RC7s ziXvpE@ai8CH?9(ZZ*4nMpnf>5Cqf#p0${C~XiVZWz}j7@x{orJs<2DBxUu*xiVb6Wyl+vRCGK&WzmTumiI+%pxE);dRm(=l?t21|<5}jStbkp` zh}Cn77iLlfl!lLle=*SLO$#j>d8pf+KgVE)k$Tg|ohJ}a-F4>m@BxS%YpsPACJC?F zeE{+C+j!KjM(J>s(VV=%)E44#XGHt$*BSC^(b__T=Ez1LtG~9KC-jW|0{{d>2R7gN zBKnD~(o#jwq7p6i_tkNHo&c1o#NHqPL4M=iv6rmz%sg6^u=Qg;COxHK9cKSs52FAp zT!oZa;qZMG-irJ$^sbNe4EO;k9OGQW-r9|eB)0!21mM#tytd8w*luVFF9GOtV_jZ@ ztbP~*Cx{24?O^G4-lc+S#tACKyTIqJY-Fc`LMUK+Lf-u$v z|5Aa5W8?(jYdX$@0KD!3+oGO1c`bf#^gg_scK|*y<|P3(QtrKxTKMmV&bokf@Md0c zs0W~XLp^riQ2#eWI`Q_q=|HGO*N~eaGh9K$(M90l#_W0OBjVYxX+< z{gykKA8&ox__AdNe64+j)e@GPu{->J`kc!P>J7_@1}~^stP7+;4axe~1STH;%vav>v`IIf zAJ{W(j!P0iDo6x!Z4%YCO>&P~xaa}Wc9|J>c|cjh3@3y2am>FmyX_g|C{5CPZb(J+#TQFmk00g)o0uTjpnZh$;4*ue*{^I`e zA9tF=#_L$I>3z)vfYz6P@)XynGA=*Q^RMe7=cZXIQrs)=3ovQ1AOxIH#cfE@=+l#| zql4>qZ#3Sm^|U?PN`Fz60{M#(<3+J3P5=bv&x2jN`)%rWteyMvdV-ZI>o-f*`12ue zs|w2|===#lgPBDLZB^`-rR3uQ*DJ~%y@)w#v{J1iVEv3bp;J{}>9OvE7`@9W;i_Kr z3qu*$l?GH$c?pKgq~D$Aa$`w*{*l6LJ}u=~JI~;!3e4-G59#E$_;zSP%dU$c_-A^(BrA%&kaTs?>)Jb-+Ju2{w&Gm#$FB%L#B5mU++;Jx=P(u zph_uUmzb#k;@c6*r8R{xvDKmt4NP~_d=c+QFV~4$nhK535K&}qp}AlkC+h7MmrUu zl8VO8ktxC7PYL*cCyG-a0h^zAo73Fqq%!FNJttiR#|r#)0-u zu1wO!sOH)WuL;20+!@fMUYZk5uWeY>O|OZX6wk`Y^YUmo+lw=h2o~yh&Nvh2Osf!= z^IOZ2hS@=8ougWGP4$fkFRJU0u8Y0GuPg3s7-2j^aa!YJOm-Gh3K5*$!HTLmv&E(k zObxC%A4l*@)4eoFNxluI{1UyMosT*sI#+Ns@?~T8viy+`mKbnF<78P-SU9KJq`FA} z9^fs*RxA2S^;Ag|p&J(oK#VCC^k`hO2|=!XA@kY&tG&Is4G6!KVDXC4K!bh3ncZQf zl=Eh&ozh}|*du-cwhsvcS0BkNM&#r4 zc?F9Q8&?+O$H5g1Z`uv#sS@YPK=G1M<=Z6}_+fm_+Iykf_j39Uxh0I`K`ywK5P*IYl_EqMNtoDpvQ86{6~~V$(Zg6qEtFZI zR|r5;9OtnZSF6IyipRs>J02~-?TYgqy&Apy!t}~#@Aq9)A?;ibvMRH33&yrGolX2m z%v9Sewq&Ptj@O>n;z!JSHMNrHkij6F+cj`8?B522D!w#6# zDHOH8ofC!-ojKnfEF30w<8IH1KppUYuv(rxPK2L0lJ=dTCcw$2S!#Npj^0%X+>sTl-7I7oTb99jr~?H4Ndq6f;tFvqIb zJ9IBM5i`YG7M?L&Fj0#GGpXvxH4EPHMEOYS*h@zC zFY`2Ird+PP4mo9~Dl>-4tBt<3)AY&TLS0X@qgsbQ)0YOl*_3jq9LA=oWal>_(06i? zWo)*g@kpP3`Qzs?MdCW#HqwgO{E@Ycj{RYe}(k z&2wfu=X1XdK2KI_|od$wg1&KIvqa(ZTH@{TeCn z$hM1y_mI_MZ%)Xld8C{t^>#-_lv#$BU{jko>nbOeWL8d%B$@N^kPMfZMp)l{L?+s$y^r(3LDuKK1W|R%^Gr+G18rK$vcC~yLjpTi2Ov=_qpER z!=Xwdtd3veou6lmSxQ;jd{seHbE-Qx6PHj>LCu1>I-|}P9nt%hZ{L9g&L+PKI~0#* zcZ;mW(HM)WH?Jy7!akgA5g2I_aEwvFeH?8F@OaQ|F)$R+-1RbhX(sbJuF|j&zrML8 z)iB{tUq98KD{@UjFYj4fXHy$1w>Vo|SLc`6%XHvzl$9S+>W-#bIuzr59=;&^SvQWkSQb&pUMDsN>wStK)i$SF`eJ|bj@K7N++LrE z(w`6p;CjvH^s? zUCea?pcyp{zeDsar+Q8+sh%6b55RQx(0+T9Rb`80RX{#w3NAT&Cc919x;J=LCM8+e zQp$F=_a0~HW}P+YME(imDRw7i8|cY^i%0doJ^upm-NBH3!Z&+bN#wf?OEl}B0HVGb z;H4a*KSAENGb3Bm-aA$HB4`~lH=c!+$u^8?5P&eLW^=>>KWGS&*ZE`Ema+EEA=TjA z#Rpz+Gv1@by>(?=+I!a$TY?*ZC*rTI`iA!x%i~7?IdbPbvoP+busg44J%qjxE zX}#8JT+odrEj%qfe^TF0GFSSw`UP+-VAn4FP#SK#@bc*4$k93?Q@2`UVH@~H1)JiAIT(tm_*R|LvWH{P$B)~;T`%WICU z4))I9QWwzV?xeTB&YBJ(PsR`5VM0U zuj#1*t|rR#=*6*caAM@WV&**LRxMVmF#N6K&eZUj25CvlE18Dc#q?7NT6AypAy@C3 z31|B;;j8gh(|>_+#`6DSbP390ou{@kzMzns@3%plLF1-2i=KtX#zHWj2#&o)UHKhRopc z7E(3u7jNRP+p~IhN-0LmP#jz6Xo=RCE)~v7(u#H5MI;G5c9p+uf%*&dvYxkM88NnU z%*z$u0w+bxX=e?5zz*ehN8!nI)VE-sdaA5Tu*7GwjS|6l25e?p3#yxASi{wUtV8xU z4QE%S*v_(nYNs$CpCnVh6b^=O^jx{`_~itcQJW1>l)lG$UZ9sBhznGdr%X7setlD! zvN1P3=b9k+rm8C1bo%it@>!mTx_QU*fF;{(c8AQN?OpcIGRqF2?jPWtm#tJ;^clxt z#h$pt?sv!?W<@0ekToL)8qDzP%UjZ^4-gxIUOogsyT=6C1G%!E9ppv>W1jOrQC7-0 zuh3MMnLN*wi-F_(cotK;8l84hDJKoNt^r#=+5 z*J2&tBVNR!aX-AQLrAw)!FeO4TVk<6TWa^=l||TmAlIhvr!T7}6(24h>rQZ@H=Nkm zD+To1G7~KxToKB*;Pg^XfV2}U(1@w6@*8`)&N`kV(2bLpZRkX<33{~`?FRbFTWsKM z+WSCnCULY8Hr!J0xU2gUm(ZmUpOm0corF_5_%kI=6~tUBOX+XRxD(ZRrn>yA4M*1r zsXpm(Z8WUKIHO)6IAQWjiU7K-bmPvLax#~yc#NZAP}-{G6ARfTfpxg7^g17LxJv(t zF|=4hG+$JHO=@OViG{&#t^7>q z1h=S9%Z-Wt)f3`AMwpJ_Qv9*r7k%r3iEYvnrw%_7jIz#o#IFxLq`y*e0X~5Yz{#U5 zKMm8m=_VJ;rU@gbI3JtD0R+IckEtEPP%INJoMC?YBSbA42;f#eT zN-^`xm+LB)zl>$9DqX@pc&fvy&KMehB3oGVgI>tnm(h2^$}*M;I5pck1){p>cukcL z`(DAik|7&Ur9RwLFn?F~7}eMGs4VD(2GZ>;6SWsRaWw^T^6+4q>x;} z<+`Pzien>=TgP%?u<(f*_q+aGrTy`>`4N{lr#dBk;*(76%X*gvr#&+fFYFS3Gsqck za-Vuo(W&ZJIsfSGq+F3KI;!4Lsy;;-V-lGbCjv(a>@bFXag39)*|>B;yZm&EXVSB0 zqLa_N&DK4BPP1jPl=32Fc?2L>5hr*j^tomMwSm1ffBTUyt|FJ)N5k%#u6-&U{y$E| z{i_=0`@Hjs#J-X(n^3wodzyqewI>o~^u_;lY1xtp>a6A9t%;lbOTXp`w9OcV>6}Se|7jCoY4P&1B;EK8CELW*r|h}Z;lEvDGcZ_Eev}4hVVjW6jh(TZyGec1ryj>vPt+k`G&ODr=OV1R^@Z*SaFi+dw9*CvP=;+$ zBOLvT-miFWjm`P{;VrsGD(+Zb)unh3qd_=yW6gL^^(oSTsJF?4O(3!qw~S5n3Ta5a z+PjE*YT-Qg+3)#=^QYI!29=*o>KuBM<#B!>I?A&f3Obr5n-L7~^143Ikcy1j&EL=| z@wUXQ?|iI5N_FlInUBD-M*Z+%z$*Aa9UT04KCUg*Vu_A)P-epSts*B(Cb;0Q?Bnnk zy6Kk}H|sigWV1Uw`Nce&yeR6&hF9@yA(3m{Bw#^eu?Z-NMffSaV9H_iw~r^Q5rXVV zo0~9Ozod;@I!~57jFuC(!8c(aYz$+&pZiMn`g38mu6%G$8pB?|*`OYiEhS&wEHCf1 zQS_OmGN#ZVE5r)l|uF19rF2m*i(#F!8O(Rn2HKDzpC zDsxK+ePn6(q6GF_Sw5V>F10QZRx;+Z-7TPAW2)9ArG2ghMS zAK2+A4iI^wnkd2>eINjI;%E>n>ELfhV9$8vgWewZ<-GP%7X^KOiO%SVB%pj@Di(@U(0mlu;9SAqhu%9&xmH5mE0Z{yY4a|2dYG7nlF)feWv<(`zg+e>auW47`a6SB7xxM=fgl=k_+0AQEeXM!cqB!4S7+mEz ztSf`w`oOru1mL)zD*+%i%Lbu2J<$CwfLNm#f}>UQ5G&Gt*NMnZ=1ueL$Gw%x8Ph&v z^I*GAMMUACU%Rmy{9qqYt_1OJaRbn$pR*?rytGfC$)NqdR=XYb6!CH%?}vw@>0{ui zBjKQ4r8`pY>;~n6O`^hnWjTDisdFs&WWv!Jr3tZ;Y;00}VqhypNSWOWwkrQxYfqPX zPP2H#v4hENIY-ZoliU_t-naoW#iG8i9f@86!{f$wpW7K5HQlD@ZK@m)Sc?09*I)m> zU6mZ`dp~<-Z@C-$+4tSJCAxR)KoqWC5nPT03WXuJOw@5Fkqys+@U55>9XaqKbCVKs ziQNMG>-sv4o|4#b-Qd&vDx26l5k32RbtI8n{oNG;oq&IupL7nw(W7Zl*#R|rsAY~% z4j_Wt^(cEx1?fw`>RY8Y3b^ zo@O^@QZeNYC`%~J2l4q>)Ls)ki?`Z05_taTk(or#4cMvwD++u9!N3}H9@Vj<3BV)e zqjST^5S$HJcBrqmV~*W2u`sD!Wl^VlZzZ6s>_o!DO=BE_oZ~%YVue8W>fa7-n~lFx zu)VXD@&QaM%{ zALu@Iz!rb_!Nm{0M<#q6@{nYv|mWv0yxYUmdt#=G<=r>_lt^vQi;a`VP&Y#qz z>B=a(KN$M4`>;vi%sz6G_CC?Ch;QQ~io7TKFDXyczjip_+&=RDnSFlI3;QMpGPfV} zq+eN21sQu&n!Vr;xwep^zoS0on#WIl1!Ibp#Rc7;I@CC={pn=^)9nffbjYRS8cqckhdRK`C^SpS`S2(6}<^cau8WmmY)Ot7jE8eTIUs|^X(LrJ}W$nzhiEpmD@r) zeZJ5-v_SmK3zT>?D%|2i^tlv^o{pH!C*Weg!Qatue8XkIuR)c?017(ahgVUak#)j| z`dDz-4QI>8vZrjO3_AVpwpHsuGrj0r z2tcGII-{lG{%-hg8JHnx^Ido#V)EO<*meBCDxw!Tpf&C7Z?cVy@$lcCs9h)Gho`Cc z`GA9Tp7^$8N;5C}w&bRfpC}s67$gYW9#W{q#wTL=qv+?||k%8TyX<{-dEkf$#r&+Yo8BNsnHcADOJp zj@qNtMNWV)_1D6V@1kj`FL~rpE;mfbzPbuimF{%jK((+j08Xu_R24Qq4_X4Kr4>P?k1-; zS*qwlERSGYHtdHKwI))T!eMMGH^x)B?YAu|3upCbQ*G;_SG6u1(%AVrF&+wYFTQua z$XVNF0z;G%_5rwfMY2$Yz)^C2@Y3!;;^GzY z_lsAO>gheONbIY`@D3^@(qFLX-A%OeQ+G)eEHs4+L!KLY?cvC*2QOk+sIhQwIFDB9 za$U)NS5(NkFaGWyKGmQ2RHTc0tZ&`An;-fz|CL1rDE;d0Vw#30h0Gzq5Xy`{#ZLjn z`_MLBr6068`F$~*_l^*qYKbW}oqf4kKY4Qo`agu;BOlwy*(T1DL~6Qd$-gkEPBT~R z;d*DblGHE8GGA#aMgLBYquFPt0c%9y^{2bfcAxqAC(Aa6q@BpTe@29pPyfAD3&ieo z;ywKrRxQAV7|xg_!ihwUX#S%9Pu2XxDE$8=7~$V%6#ftI0c>#Z zMfGK+Jc-g45M0;<;kf#!pGgp=9{P_XMYhPoN z=)8$s8gv#PmR*?+O5k$H7rXlG_@Na#SKd=t9dyZrU)M7vQw>*!SE*gDd>Ln5vLj*x zA=fhPZE5>x!}()%`Q$0JyVNr{X%vjw3wEXyjSMKgEI~grsEP~cQ63i4y5!qp2Wt;L zVrbsg(RuGgV@&Hw$UE%ijX*5fWU|Ll{U|jy9+k@AU{Vb}05>hJu1acGdyIQy6`Ne1 zULpgj56}UIR3?kUVKmC@yCHZs%ZO6vJ+vHo9Y56X_)_`9*Tq%EqSEu=oTWYDTH*4I zgSFesX5%iFY~0UjtcjNzYlljupO-nK0~Yqf%YtLiR~a)9$86J0%-?qu1e|#B;GHyb z5)n8?jTb5i!5u}C+t!KWJDL3AcPuZKBX{7*6&)*eAGj9AUVAz=FXlfR*QHQJIkS10 zv?#C^h553+{N(jOwRY^QrQIgum*LK-YBl_oo)Qpky>W{+$jNa1RI3L`rE{+bwq1}mXj z+;h@_U+A%Q_K3Qj1O3x!^%Yd85xZ-N)K%Ko0xR0y-+~b~$b0@280q*>94mULK^Zo9 zwAY$!DK*2?>`K$LMBL7iup{oDBinAP89h{F5{Aa@rh&`0WU+CzTy(>k#AY5#eQf;1 z7ug2g;j+2mZd&$7#SUu`E&LbaIzEWyP)mtI`QonZauT6|J9t5?_c;AQ`zpc8iDlZ^ z#L-MtE50xDi>0ZGt5V?9V_duG5j9&&H`|fla@$0@46R??FwX`l!elpw~2w-xk>VWXh)=m&^k|D88JObJEC&SZ2_k0AZrApgls1FoY;f z`X`}9lt>)@NocuuWFLfdo+vBxpUmv>yZ_P5A0(*%eQkzf$x=^kYMsT=QblcGjRgY6 ze*XvZyZH8jGyR4C5tOrkvh*X~=KqD5_m7tT(bC?Y5x=f_|0^WVf2%FQf5)M|oANnO zFdF=S#|B9*Fh=}gF9VcifHdNvzf8@}fsnMfL$dmTb_e;;;LfBS9p{a7PiTe@jO)qF?@|PMeBH+v8RiCuk0CRvw8U#ZMbb=bc|Vno z)@o`9HF^%I2s$+M+}^TmIcUv+p3an>99v?JQLBDI0B*HEpS^oZBiHnj*we)6IgaZp zOee$YrAK=;-l|?ZEz!L_zvWWBQBv0tJ{P~oXS?C$ts{qB{P)!Vx|VECS)Zy@0BrWH9vuf*VWyna;N1?Pahh2Z$F}&s1aU5hx zUENK0UydB^Zak%pXo%ltK*v9naGMvb?z{2Iq*#SLp8L_!Vv4G>Z`#>Iwfjlko@yPl~Gfu?IUC94R@nHPq* z@FVJPe?X+@{wO>M^*+bn&wxnL`u#rWoPQBZXt0l${@uw3`4Dw@Y6iq`w9T&JR=XLsF( zmf%O$mhZ!O%Mi4R|tH`Hr+uzo| z4GzJJdy(&q_gg5S6K60uD7M-p!&v8C_vJpkznqnMj8*QE$e>aFvJ2QAW z9d5HsgCzj({1ve!8Q6*j9jh1fyh61@ZplVY1z7?3QM?>WS}1on%WqF#O`Owpk%<O|(!AE6hfGg%%u{gsZ_VW-iruGa)Y{D^>Bx zDL=>U;a?!BqR!OFh7F^^^<@r+l;c>F32lSMS+dWvoQYUfP_R!+_m+Gs@=R`u+buMAvG86RtPy1Mdp z^-Af~#;t2R<*S-u)6>qGNM6TUdH3~m{hN+X6*zG`;{NtCBFln$4@fil`fZUa&liEU zLFpXyb;N`;jVx1nHLZVItf3!oKT=%PS0*OsL@Hw(W&67Qj^`a8Sl2?dnCdib-oo3R zLCdg;R!mfVD#c>yRLZhpkA(XdGXqKEzUKkw4^?oHl&>oGp3jf7;B%pR$6|1$^)dp> zJsPiZsxaBp#NE2xXK`#g{_}{jpN@TC)1jLY`E-rfudW=R#L-E|f)rNh9)%Ulj0$P| zaux-zAETeAv*u|Dkw%2p34bUHk8ZMPR?=!Ti>)oFj||eDSK$s^GZ89RSHXNh+)PGH zoNd8af_v>KniSf3ydL%|AF2o8M##MhxATQB7gIP`FBDW;^Awt1Jjg)7zU@zi&tKl6 z(Rx!$0LII<;j^E2?hp7|Q0QqARpl?^-v!;!D@I=opGY=9nS`#>Gt3S*XSh2fC<1F# z{9X;uRnXnkw_SXp-NUC=t+G2JSP#(`n}Y1Q7u z+RF^GwcEMgj4$}={rpAT6yHrgvWp%obEYZ=_M$7ZNC!{kI{qTdl#p%F>Vn_feZ-a; zcGR~PB)zW&CNdf2NYdtBKA?Cw6I(aBq^^==Zft5D$@a+8s$V_s@WXG=EQdy}jh4an za2<#lP9A$B2b*t+4RtR3Y-%d_+}VM(VuNSc?ER3Z6y59kkxgeK4+_ehg||js&(gQd zhAithcV6Nr_yq=*M=%;iwbGlZF24|I#8#2@mKCrtMIBcZg2BRwkCMI5>uc6wgR(Yn$|Juq);7;F~>e=<~@b%tKmm??OZ`yL`|3~ ziu>hXnlm0!h%H!=l8nz5PYG=$W_ z!oMyLcYXUzySG1}E>ThbHrTV1V!o_s^+o~^?k|KK#98Idr!qbf6%4`-|7%x`X*Wfmr}Slr_EeKniq zE|Sygl(0(c6k4e%#$F$bfh}6)cVgJV&fw4FE8CCr%<)QUxQht87VGTjHt*wj4F9do z``Gn2aQ?>dO1-lj2Nw=bJt&!}L6YO=1^Yf_x{28#=F@RsV=Jnad-sKWT0Zt50F3^U zxC^_q_d=wM-ss#5{<+>1kvN!R9@XDn=%@<8CihEtBr|4^59X!Km#Lmlw$}%trmn zJm$U^9HlhT!{N5>m)zc2(X`~W3QQF`IZj-imNtHOlv3Yc_x#q`w{hD-jr5-eB|--g zG-FzHK0E_OVUE%xcIn|xWenxzK9_y65(F6(n)pgD(H0TlUre z&`O^q_VUsl8>W_OTjQgquly~XFJeMk%=es64;<0$DC`HtvlBe*_08MMjV8ufLuVp| z`ahUWoTB>X(E7}`r-AgoB);4>iadj@4>7d9>wfZyyeGaK5d%M;@RMkUo7{bV3xCYc z1jghqf>Xz~d!rw`OJOUo2&vb|lKw3iKjp|~S17@kAQU&=?sh?PI9FW^)}B0)6o<{m zKqv6oXit=JhBb!96pd&`gqj^owadm{8&r}R?b6nmSS^xR=C3J!QyENS`zgh*SXeil z^FIIedQUUwY`nIQzgc1O-A{6#icaC#kl$8I;1?GPZxyBO7)8APe5T{A;w>HxgR*=4 z`~j58f!ALAP$d!uS|Z`&sSSPx7qN#?mctX17trM)&s*Hda0+9A_?C^(V>|+72FH>P zOAK09dHTwB(2v3|`u8b(0iy*2g(jw!Tj&{PhCS|Q9M#>8qdS0F&!6m|Pgt8htL@T} zwso10y1G6+#NH_Tpi2L2(fIJlfNj-U74>bG#OxuRCZR2Oyt&RBtICp^vqxUM?#ks? zYdU!RKw!QI|8spx{v1WlI6H9^^^qHA4-Z#AEH+_<7f z#Mi#u+;rc_bi6jo8~53M_*sGb-D?iXCp5y!I(ivvL*LDi18a!kx#dRo&A3!*clmX{ zGktHB$uaP7OUpN5r|#r9cqHD6^SG+v^jLNJZH4|7xlk6dE!8^#Vs`p=Ia?#`+UvOL zFP^j~jZB3Lk%hy~^CKobyXu0%6DQ7}$%}}-4M1}Rlb~l$Ub_@l1@CzI=Fo%pha%I4 zCY|pKz3EZ3dO5RA*V!4I>gs#zW`$OMNTlu2r5YO>&i4Y3H>br;`EBhia+cf(c38{U zunRTVaK~N=UCF~^?#@7?y3klbB2259gBEQ&kJ;&d%TL#(nSU6< z_k{M1Di?@Wu}BATzgJ*?B>Dc(Y(Vn=n4^3DWaxK$=wH>@y(7bQ0gv)$M5@6}EpLIg zZx6*@?ETNs(f^q{TmDCrN#M#g=Htj=UP}&Nk6uM~^f%BY=FF?%RDQRvpuq2bf9vz% zkCkDgr^K=z^F^P~un8Cc4PI-c$Or~VYy`f-P`s6(!&ab1!!vD>2bMlbNIQy|$*#P5 zaJshd!&HS2mjS1SKzLjGVOqnh5wCU`er{i%mDz!irSAu~*+&E!akyA~aYXERY~aR5 zjWpzkcO|f3&yQAoFzFmxqlE&g)7>_xBC@&Blhp%@&f=sBD#gb4T6x(t9xV>!P-;NG z9vfR2YOo-2@Sxla-8Ri~j`QyYcn40XMD9VBSmZm#_knjiWUkfC|X;D8ewX`6blHBXzv`VOmD<^tqR>~O23`2v zFAJyCTf>^Kp4aZfZM>;)nLTo202P!tq10P9bN!MQnPsvTPp#}*iBG8$vJG@+QQDhf zWsb6XF>i<2!%lXpUB3B5x^u81XT;*Hfba+5k8EtKvaF(wWV9z5mRR@wXA)C5^CE{T zScrtX4z=wGY>ZKeb4>P&eA}Bx=L&XagByomyzaho)kW1&zuLvsZ)9hyhyY~5XT@%! zIn{3Y%(MmbKAJ#%bL$j#Y7+Iq)(+jEhn_B&kf6uu4mrCc>AeCdmtIPgep(m#Xf`T#_SD;wpc7|L-ic#6 zM}DU+6AZbuhKDP_?<@1YL;2{?Vii^!6PJVCli3^COtyo%?qA2lYQk1*yi>mL%1cmN zHL|s(@wp4c&eRy}nBe?+YgDs8N(3rOXYK|V#Tb^!rtsIv9{+sVIZUq55hpvvFQ&zn zz|c{1@IA#5KbyCR(xFJ4JKCgijH47rGs8I*97Cg(O(%4@-^r?ON9=g5akM!bhxPIF zDbm{)Zrn;6zO5}Hr&{|m!xPVI?kB;T(Yv{PJ7y!gtf*r|3#VOucW&L-WBx{VH-ZT) zM^prysm2lmwH$Jzhd9I|8E!3FKQJ9KTQ>ZE+B@@jDBHgO4-zfNUW%#gA!RGVP}y?X zw-8fFXhO0xj1;n^tVNcxXPL5Qo3RT?_Uwl2+f2k@X8camec|f5uIG3E*86#$yFcdj z>NR=U3_BI5JyG1J^hUN*$&Zc$;?HO`p6D}j%aJ9CXpG^9c5nThKWbvmlX>my-r|V z$3&kLCNjdc3h-z?KbsWz`BMK6GktdkOijdzK}TnYA@g>mt3}4ihPGe8XL+2CW_*hE zFgDo)2@KI8`pa7`eD7X#WGfjywP+vbkT}*9`>nk>y$Q z4Ih&>jK6u|LZ-=*PX2qG87dX>Vo#e&kt%iN&`BGX)BEh9pTPn00{Dlc49xIL9pz?e zbylfUGVQ(A5e>Eu_A6!FmiFSREz-5AR?(^-pHUnUFi<;HUmjKiJxmgY8{-|ukb&R> z%R&0a`1VBttlbM~^{+ha@|ekq2f?Vjjq9SYW2Ui>J&)b3j)L*iNo~>adLc z8raS*mj3cHtJOt|0V?Ke>9zL$iR{jTg=Wx7^xi^-eaOemfakK)hKR+L2+dM9*PUiWix^8vVPFq?YY?ryR^til)_kn-Cbd6w| zTXPMfu)+U3`Z4;8{E@Ia^ON{sOpdrl5soj|6_$L}#w27fiCf5Y$XsqTr*xp$wzG^aUkeR^F8hCu5rIo3h*(esLq z8<%FmN7`#Dy)XE-3z^yj#r@SJx@Tq^%Li?y54S3>A^SxB z(w}`cwNNe>T_+j|ru~bf)tZEXqw{T0{G`VM0HFinLCR>zIk!$JsC4P38YIvED~= zQ4_7=9%&8ZXqZ1YHtcK8hZTlUcc1GP_HHa4u4Rj1K7K!`v}RnTJgJ$Leqa4wO^W5= zK9w4-M`&MP2r9 z5_Z5vyAIb43`$gD?22b(C5Vxc;T7oISQ7tueIOP(+FDZq(T=Gf+E z*+d)Z?4{@4TH1XzYr67M?AcRQxlj+?zdX?u(z-JbS(F%Vn)aq29E|yN>fAZD;p%LZ z3()yKbHsb$)Bo@ z|Fw?D|H9V12M3yS;6y`ZnKSXwYA*hms`V$YErK_6hgcFuhp0{xlRwa3%tq2LKe?1B z@?5^VzhJd#N929SikjEz?HFHt8$NCX;>&dcpi-cC-Gngw0dONxzhzNoE!#Uz!N92l zqwn3jmN6}fb<~Tox5JgK)d9_ma4)#num=tgDR$ z?K8ROz2=sDS(?O3`KsNUnIMi`eYiXvu+HzdJS$2!ZFFYP#HOuZx#;sX#e1j6qPXj+ zvPZ5Q&D{jW<=mZ!=e=Sw%|g1;4lqF0S<;*3-Rx5O2qpxeIM3JHk@N*Y;VlL8W@&ep z_7?85*++brGR5IkY91)(pJio%yu;Q9e=A4ecujnLC|szSxt7U-J>wmb6kf_gU#sK9E9K5#E|Z~ZMHcxcg>pq8 zWM$OU)YJdCg!!#7U!Aw|8C~)R2s}N823>G)swQv2`;K8E6R(JslZCj#l?*=VgQ~_J zoXPE_XlA@c&CuEQT!PSOybPV5YL{(VacSXu1)K)+{J|&bzO-5KM$MMJ$cprJ(F9aU zhhM>x1|bSL3qz`}b}R*B7;2yt1Vdb6C;^5UK8A1eK7{ucvK3M- zv_02P;d%byCHtdU?n z;pqEj*Hlf^UfhhNw%Kg6p(F>xv(BV3dmgu&m1;|-?B1}w4;H>Vt!oM!PfSrA|W7tmi5k0lT@VaAUu;#|81o~mv zP8M%nIyEm#A9*Ubt#Vp{_Gh`)&*r2B6uX&fdZtK&KIMWF zM>NmI<=L7oS`O8~1xJDW;cU%{w;(nLgKA$?UlYIUw(4%zR@{6t>!8@P58x=LA4htG zAw2wOH8k&2R1Tur!5#B~pyYirs`qPrQqYCKHcW>_pt_RqD_17*PijJ)F5rW*8X42z zqXmeAQ${G^7{wmp(;@HhDQbn|MH;gr$XF_uHT<#SG!SlT@?7Kzfmxo?oIccG1%i3y z;AFMmzOnR2*#iPiZ^9(Z-$dtW8tP0Gb_Wh-q4e8k6AN#SVU7jx06w&)h`FvoIL$S} zNo*rvauWt6zQ_V{cjg5+zsWhAGfushB-~jTkT5?dBAgzdFmyP2KHxbf?^cY*OKEA^ zi{C(0MP22LW8eS;wFH984c1UPAnx_LTd4V58N^bc=cKIZNuQf*Sk(bVjY{l2@7!xw z-`vu_hf7)fls4G?EcT9^t4qW;^|E(s{>+sN=2A!#<3~)9h8*&9#F=;Dk==a)f_m3l zRRnvjUxu|!Y@5*BbW5!5V|XNdy|Y}&%~mAsy?-wlhPoYJr2JmVqWPHBVNNwl6hE#t zRJ7a*7gNV|v_}%kJPj;3!;gBZ%8DNBAF}Ci3Lj`>dWQ-4aM-jiA*N=;d(Ib zTv%wKoJ;RA1B+7n)#iIVd9myDqpIa`!H>V{np>}Z``UO)?bBGew^SO!i5Mx`zo<4` z>`dhTE}LF`+U7>;6J+y|jdMH^r3UO0?xuzjz3N&n#JjB>dv}@SG_^UENN6y%s%%^X zC<`|qoY+trNU*K#XSZ8}QaKihHBj*tk~wzB*D7NM7OZ@)7s^)u=ic78Z~Z9V`Y{(Z z$abK5aUc6UoRTQ?#=&Q&H7;)qpPjL3-hu+@>21M(0FUzRv*^?xqD;O&S{evY{207H z_@iWZQnHIdB&hRG`ozv3@SnhKNY3Xy|4&-9@sC5>Hh`}Kl%fDy+3tUnI+S0a?q96* z79a`zi0abj5JF!(tKU_Tr`fq+=%A zWUK4kw0VbNESk4HdZEAR+h7q~5EoNvh^9x}*1}&*EsN2ALZ{LqE>hz6_PwoJ?CX}=0KvBojQI1OTnNoP}nWuadq-50pE|RNv5Amv`P^(Xt zXwANIM)p9vPsQ$;Dp{@BT6P^5hPkt1zNv%Q5BMp3;nZAkT#oyRt$}hL*XLXwZkcv< zwRP$-6ZYagE#Gp3LnridMOe8CR#G4NV4TXJQ{6 zI(f~^>t)qsQX}x}OY>U_bKSI!1L96g(=sS_g;AAoapGo2oQG@TigE1zUE|oUC6EG7oRP(| zqX|=50~Vy|N$NN(`-s~gbb9mCOLTgO27H-7FldxZcy(d*ocXC5Y7hTlX4IB54S=A~c(ZD>= zfv98FCaaJ6U~wB5FP^;fRnlc%?>Q;`Dz(p3fgH>$$?i9Aw2k|FB@5$U(_Z&wQ*8qo zD48XldQb^+Vzup9AT(qkE0>P_2D^F6@R7TIN}pMTYw-ut#}8Q6Gw)9wHp!oiJaM>0 z?rXbRF=`&_Ft<~x!Oh>~ZPEV2tkoeQiR|lhXD5|xGeyQXU2Y^rfj@c!wzB^&bK%dR zdcbPszlxj}7KKZHJb@kdEnH;0s)CwS?^wuvZEWFqB%Jm|=b59L?JDPwkG)5-V;Ax_ zH1H7$9dMQFCH%c>qPPDE+%ugQru&xCau(uf9+$qHpJ!5K%vU>5fvLPO2PAffF zPfPP9bjNOz+`K)Ax+AT`N7hs;X&?rC^7&2BTi{pQe?|^r6udiYAm8}zI|A0E95!Jq zsbbkB*xUMBPNiHx1?YazY6F?!CS48)GOuj)wnf+)^Lg@JxHr^lJ%$ua`Yg!u+B$$*Yj~&q&O9i8+7pc+W}?A!cuLTFR-0Nj^s#^cV{KV7N{4z!kEO+ z_uPtf`I9DMf?I)W=4XJ8+mS!F%VGB;@R7rjo5#LIoeYp?V$-V zjUbL8s@EDdkF1FlWEtnCUae0u3*U3PO7S?`3AaWnxjK;7NwRNdM%?fIl8#(^amR*u zu($n2h43raW}?}Ob+dKehp5S3nPcH>u;vd5cNpkV-tB?VNnuH*CTZG>+f277?UHRd z?y}GXT_Kx-N|Iere*0_PH;C?!Q^Mf(ZoYLU*S56ChoAggep@W-Q@i!iIEF)TC0tZ- z(04hinw263`*e|#K_@;Vc_&YFz(Ze#8}%~X&UZ3|KFn8+oVv+_(Q-l(y(UZeUo1HR z=Iy`d)XXVm5jX`aBD2b5Vugc-yc|Bs(%8E>d0Y|fF@}Ovzg?eW&?1`Du6a$Zv+lZg zl!rV7pX5LaOvbeiy-$T4k{4hM%d;K;xPA^QJ=eiA-TcjqDxZUQ4Tz;F`~#fAL9Ynq zF=AHG$aiEg`Y3Y)i51KC0EYQmf)n-#d9@HdpA3DQa^K>P2Q1XG?15 zZRwj&?TnNU9}l`6k!C#A2j|d?+T&8>62u+Eb68(#gubzyno4qD{igP?m2Yxg+v(4LFv79o;Q1?-#*QN&Gq_1N5 z_^u2wd6I8G#Lp`8zbOK79|&SwaldXC*&PS=Bgx<|1|CaR{jsn$${Fzb zZvdU}(I)7dy6n+S&~@7j0L3vm4Q^-vKoAVZ=xGQKoEeCG9*Anh8gBv}5cs9yH$f?F zpJ@k@S_A;CX+6LgCNv_rE;a+wIP0v2feuQGu28U&~@?kH>lc|mqvzJ2%`;}&n)lIqGP zsNJ+_-5YhCn2P?&4InR@_C^8iDUPIACKJZDDC76QY>=l&P{ce7S9@L*v16AK(= z?4W1_Id}G#+Mr!vkf>eTOVH(yfVt)~vbiRi6SS)kFw=~D0T7wi0UY&I(TqX^aho97 zt!6R7rlSq|+&G0MY_C(`L~DU%LxKl_6ew92hBrb^wWeaiMq3Gx4JUP=XWavOwk*o2 z-BW;vc^|QF6Exdj3tiWs^Dz69{@qUGG8Fw9hjS}z7y%8Moo!KXnYhirj#TA+J2eY%!DAM@Sjs!I@YU-v7 z)b$p8pMza=2pJO;O8Kr*1aK_>~Xi$(lNb5vV>wIKoro z`;zO{pf}qDJ$0>Z-4Nj71LDgYa(IbBeC5Q6lbUD((aUe%N|HxC)mSULHHx-RUNzF{$ChxSd!mED zn>owWi@(3#p%L3oOnV|CwJ>Aak|oR2a4*ZwU!(47IaBES4IxZGpk6(K4$eP{U+mB~ zb5whWVt1(h%-hg+T}`$t(B~FI*}aPt*G58u#z{N`8axaK)h+6lh1z%&uXN{M^-9+0 z5?y|gn)m*Cd%xy7d}UtZU=u^k2}>FtkXmczbnNZ;*V9F@QqOETqx>G7?eDMJ|LBRp zP3^~zll=^|K~z4}GE$-E*a06AV{~I3JSWf4IowhA$uO3CJ&okmZ}%NuwV{sqpfWN{ zjHD9+hO@oU^g8hDqJd`@2GDc`IE+Z)L%NLQ*T6AE*a*(D^`WzMIbD{iwF%}?9IU@g z9C1)Mg^h1O!@fLfkLV)k;H5*Atg_&_o>4kjU1EMijVO!TlW!WA47&)DDQ1HMO^!Sr ztu{v+xxt1v)sWV)0t+YIc#noFovP_%^c6Z#ZO-}`egI<&t}QlU7xpy_D zsi;Wtm>Npi$~Gg(^7*?Np!XD0QWDKg;U&n`L9Z%)PXOsyye9rCmuj?u5Z-zO@#Uxv zFz#%G&_923N+AGq5>c0pMSMhjWk}xyO-ncr?$n*b{P1cMh-%=!wYFbW8o%#ve0X

Smn0$J&4NqDnkWaPE}7IV4u`nLsrfZ$4YUD&>O25ZP5V ziaZ?XNtP>lb2$`6QT_wh4jD6s_Z}>fT(SPNccB7jE(Nmaoo|q6TM!a z@szi-&%5N!be34ZplWfQrRzbfo8c7w30gUxXDAe?ijk7(VqbM;k${~9;f$ZOV3U^p z?D{fWc{^fF8Un0+zR!<}68ZcqPXGK3k^z?-2XujJ;;R*4d12nT);j_@cDJzN>eRYR z0CMI~;~v+TR?PhVnZ6p6o;{T3yKEO0>_lp{`^%eozT9~Kyz8Z)AU6QK1|No@r17j6 zGtW9#J+s+nmKBePYj1LDUAx(tOa^KoF~?NfYlJn9J$allm-^ZEhFL(Z{UdW4e1=4c ztSNQh;8b{{WGKMdG`BG-Y7uk4|9Bz$w(s?De)_nTqP>d8EmE*n4`l&4b@jUILs`z7 zrFLPdD&wY=*^32C#xD{sep;AQzfdM##`IC0Nj*sI!kRZ43mI|FELgMcSSKYSo70ic zA$P;p&V?O9^ehB!g3>)@$Wbs4@^wg75eP)3{G|A~X(sZrj3$m14RCp^G3QNxUjA`Cp4`le$Cp1%o>1hT)cVpowg-sxwkRF|(g%1(xn@m~ zxQA}HryJiL$**`@m>`gIG2FX_rQXwRVCjV4AnJalSJt(aK#UnxO-$)f^6S0>urNmR zP-Wt3nfvO+p`*|<{yd@!*8|VIhsK<5N3r=`nh3g{jJKhD0+i)u72!XB5> z7}~R3xDaOlI!KUqZ38niIaXZvNfn50G+OIR9;*dpkxe->W?>O;KFlsPM!L?4m~ELI z>iF*@-|6_zF5h90!Dl%h!5fWH1OSib^eY0eC6aHQH}q!S1T_j{?THTx7J=fx z0fFtPGn6_j*V6Lonb$EL<QAL1S~vEyMRUtf-_D3sWHll=Nu& za$qy#8%F9^04uaXA&6>Vx~}t^ivcckfT^HuGKqbC6VxVyiy`fYY}kUlsQ$EJGp$+i zxzvH_2|;6l7g0Z~hP0QU-X+UmGp6okg_#Wg7&{y+*KB`qA>_0kr{aeF#>Eki`oFg0wQ86-VNA#QiF*_KJpJo6AGLkj%8>#hIT z6!H`O=bn5I1~+@UsO`mo^25=$dX(?ZTBE5a>Ren^@krMd-Fy6lD~R2kYEaQf0MNR zA!PeO&h> zW}by=kU^(VF}F0%I}M|I%MkQ|2!yR$^i64zB(W1`mHfXxm3irq@V)MdMxANNGF+S| zOLJjpaVA*bP;@1_$ioeK6|htT=1g5X!e-WVYs`pd1A}!%r=LV^ZZ9DEewR{=@twua9`y% zY^a!Sf?jR^NYC@x*swr}#1I4n;Vztg^gs*b@G>NxAtB0*xm-2q_7H(PIf{3YU+2cq9ZZ$shuEOxdYiWk@f z%@@ukCj9e3q!;|np6mD~2ssD@Kg|{Aa)|XFIeE_C=TuMwHs^A!a!E)2mdIa>q3f z*$0;-a`BXgq4>ck`c_5C`&KqVcOY57ewH~13!nmA-LNo<)N0S8d;M5u%|Sx;J=#y=LF0Nu3pcYvh$#T|{H2@9t}L1WdpNmwY6OEXGOtPuD|#*0TUbeYSv%BP^Yq zrXlBbvi_DrPI19KPD?YAtew#LYuJGT16fnixt%$B^tT9dA7L`xQm|!96QR$r0}9_+ zW+m+-7p$bEZ=HAB1n($kSvt2boAfWXr$h4LpN$~`6Id$pim;HHVC2#MfjaJ12iwf6 zS99`TQRqZ}yV@JfBI^WXF4~PYlVOQ~6w= z9_%*O>FjP!^a2#SzlMm+m3BXSoMZ#fF=rIB{o^up^V0wrTklLX` zND^%Yn;`%7+kyMo*j+O1@80e(oLI7ovlOBY*B#Qn=~7R*6a*wom}g`bgGlGUs9}Rd z#Or$cTx;+tpU}d%tAi%99Fd}X@|ta77wn(iwR9$S@1yb&GlD5~>My2_yP&J2%BIG_ z38gEoFYe1k&*Pf}Nla@;5}1f3qRwS&cby>t>`YK~PgxGQj8&klkjp9?U~qlM%+xqE z8uN|n@`L(0YL`~7S2(McXSnnS1cM|zcNMTubslD!H3^aGi?2P?oR%Jw<{r#B9U_N) zwjdJnIAzZ_^}NjId+DIDIhfWy(Ms@PNhFI~Of`uEw+@#^b>zUsF~wz_r&9~NBvYQK zrWBQvJ_RnMC}{RNQ*8M0M&J5kOo}6>mG8qr067qAaxYx&J?>a+SGr&B>1(}i(XAKX zy)EwKRabv}!q`dfqPq#^mC@-|Kf$OkE|ZcMGK}x^ceIQ25__Ub?=CcJuci$(df&e? zyI9~-Hf&MRy$P~wQ6dOtxD8h!4lXP%dx_S(#XtFa$0Ic@(McrNE;r}6YVyPRXHD&e zSuFcbYmQ%|xd59U4gnuIfmazhieOYvEkcfJ+*B2IGTSTo$W;74~6uV2*N1D}7 zw{wS@Up(_3`N0dwPF9h)@LHpLa14Q_)r*)gYP@@aAC8q+@x@E88g-(3JimkE>U?(i z0(*F+a>i5PFfNCfqge}(K4t|hDh{Jh%-#fH_xG3) zrs=gBmL9!Gl{3oWACwQweR!R$6C9nxw>Z=jmD9e^Jqv@H_718-tRoF_qmZ8PGj>F$ zigl>1i1Tv%YCRaQ;w?4>JV#mMwA?6~AgAuqwnC}*baWHRcJnJ07iXh^T4Dt&Zig^Ygjc%bvgyOP7XUT$z{5S0g2c=59cQOmFN`-29!|=(h2xEr@SqCs_-3 zcGo(2rzVF51U#NXm5wb(_8<9kgV?{fpaRA3Xst40cM+g>cEw3FKcU}m)cMv{YKWV}K)?5l?yi1dku_McRxy$iMfeE=I3GCSATPc{i?OCNj zwJitC)oVyNBTtQ8!uxB0b$c%B)`5GSf(^^d?9Uc0T#fWK@OalsS?aP|4~CS$*I44t zL9xHBvsZJP^wjjNBug01XAV^f58o(w_Rhh%CnSf=cRdrixnv3 z%Um~9Y)q_b?AhTO-EhuPTW&3^b4FRhuy%)cgR|4~n@Vq5PG*Nljf_W9s>t?y4Xa`B z_dq<%k=4V9NHuSm&~evs5TBzu%PB?|8HdfiVo6souX03(Ion&wW@k{{4K!BmtKsIK zzYsjtPukbT7Uj_%7k|56j*IcD);?IgiY}Y>@gT1y{zV>x-V-(~_j<280$z-?sA+FV z_hSPnuhHHjd#sC$ndiz_rv!w(&)N|#RZ>{+AUC-ye6`k_wWw3XN&$6I#m+hWsL1;( zJZ?<~4;}t$l#Qs-tO3_>nvSu(8WFJ@R%%mhN*(gM-%)*xr=w1SBPIIv`NNEY;Z8yi zeeOBn!sg9JMEj7?9tjuhfH^ZZ)~(n?i@s4VXP(&FpN*8A1lttFXz19VHQ>z^u`>1B z2%3}1gUuL~lHP4Fx;51F$R9vZOv$jUaFRth2CUT> zeF;vAfkQM%_8i#H4$hv{m^?s@R>$*(3t8LoIK^88-b=Wrya%40O;3B=+X#y19;K;) zvJYJ)XvLXxpz;|Wj)x-4RbWVyR;v`Z3$fpC`gmVHAFqT7 z^M@QO=f`=Dq@o{#>*Oi(a0YeDG6|t>82cC##ms@;!E60YF(;441u}Mq=deeHQ(n5= z*AXj|7LU>edT3oYzkSv@$plxC-C?v=y@Jj%^z8TSO=zQ;7kM)ariDXs$STsoL{n@} zfHM`>OWd`v3np#zT)e2xd5dqYjo@`fU)hLzZ?l91q8ygP{AE>M<7*V&;N*?I9 zjGa(7m83kNBM~lMs_@var0;w>t5aXEz-*8H+=g+=P@J5k#{F@jEdGkY4V%)%WS6C( z=^XEO|MY5_mHY2Rp}T^Q0LAnKd=P*ZY`@Gt|4mJpHg(J{1@MFINGjN}%LkC+*INd9 zXZKsCVNouFI9aIldjZ&XC73o1Q2qUHXJzK@yjX<{;E1W6wGZ(?#X5_!+7#7ySC1~Z z=bn74a`;*H{8tzMAvNVa;g^FJ_U@~a{?5M37f6Hy<_sKntWk9tC(6PVh%qQef<}*| zJ)>KcvzwjlC0o|COt$#k84t@s0wcF_rlY-;Ba1F+K8UkPP48iy2U{?cxjBCcKJN1_@l&S$JXikZLjeYF`DRFLb=7>YyRcKEcK61b3*yk?(RE zHv!;AtUNX02F@}uge2&u*;>aD8k)EQr^Fw56~rLXjfQ{j_W}-3F9Y=ib_k%1NA`aX|w-?l4k8KaE9k_qVcB$Gu z?%u1n)EMPsrD1kG|V!x$HhudA1A3 z1KQtQa9>83TeRiFjLj~}$mc!3HLql>k>!n@Kk~9W$dwAihwu)t5%hjMZJ(AyGG1n-NB6DTB7YRA*NR(%CI7=Gll#0D ze7wR3e7+34QOOnC$=fOQrj?pv`xmC@hE``0gg68m>DVB-=xcrmXH;t|G-_Uf$TAzU zHewt!{vws?K#Zd6JgdH6v*<#3q6AOtl5Hao^UM9yC?0|wHl{9YKa?PctII@vE_@Cz z%V1Lu{&+cBnlk$0Vag^kim$i0=v;qH)}8U7A#{IP=*6Hqat(aiX84``TpMOk*Vdw1 zo~{@>Ue{+_cc#N!-Fn>g0Nz>Pz~#`lc>|{PuC@dEEIdfo1$jxl7bff&o?jQcHzU8- zdi{;NV{V+|=|n*dOs^r#@QD&bXfCV&xN!RMr=G660@dWAO1McqSBF5 z5PF)WFz;RHao@w0`cDKRPn~>Hr4OP>HQ!~4ruAZWlIWcxQShzJdn+*g&&9j`zx>)@ zx_{?o_a{%Xp1)GX8rqo7>%1f<=kFLrp#XrG0`o3_ioS-BEntHuoCA>8w5i(US3i2h z21XE1L7o$Vv*jz{#VwUUZA}!a>qzBRwVRJ{sn_uH?<^B!tDTGAikmBE1WgP9CA9#h zfmS5EAytxj5#ErQM!ujfPtF!(3Z%U4Ds*Lf)!U-e;P&F#+cQa!^}7 SFHQzekvoV0 literal 0 HcmV?d00001 diff --git a/assets/problems/search-in-rotated-sorted-array-2.jpg b/assets/problems/search-in-rotated-sorted-array-2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f0e2396c5c03e5c2ab3e7afb62c14b74160a5c07 GIT binary patch literal 78466 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 Rk%w6}wyM&&NB?L4e*kuGt406- literal 0 HcmV?d00001 diff --git a/problems/33.search-in-rotated-sorted-array.md b/problems/33.search-in-rotated-sorted-array.md new file mode 100644 index 000000000..8f66add2b --- /dev/null +++ b/problems/33.search-in-rotated-sorted-array.md @@ -0,0 +1,122 @@ +## 题目地址 +https://leetcode.com/problems/search-in-rotated-sorted-array/ + +## 题目描述 + +``` +Suppose an array sorted in ascending order is rotated at some pivot unknown to you beforehand. + +(i.e., [0,1,2,4,5,6,7] might become [4,5,6,7,0,1,2]). + +You are given a target value to search. If found in the array return its index, otherwise return -1. + +You may assume no duplicate exists in the array. + +Your algorithm's runtime complexity must be in the order of O(log n). + +Example 1: + +Input: nums = [4,5,6,7,0,1,2], target = 0 +Output: 4 +Example 2: + +Input: nums = [4,5,6,7,0,1,2], target = 3 +Output: -1 + +``` + +## 思路 + +这是一个我在网上看到的前端头条技术终面的一个算法题。 + +题目要求时间复杂度为logn,因此基本就是二分法了。 这道题目不是直接的有序数组,不然就是easy了。 + +首先要知道,我们随便选择一个点,将数组分为前后两部分,其中一部分一定是有序的。 + +具体步骤: + +- 我们可以先找出mid,然后根据mid来判断,mid是在有序的部分还是无序的部分 + +假如mid小于start,则mid一定在右边有序部分。 +假如mid大于等于start, 则mid一定在左边有序部分。 + +> 注意等号的考虑 + +- 然后我们继续判断target在哪一部分, 我们就可以舍弃另一部分了 + +我们只需要比较target和有序部分的边界关系就行了。 比如mid在右侧有序部分,即[mid, end] +那么我们只需要判断 target >= mid && target <= end 就能知道target在右侧有序部分,我们就 +可以舍弃左边部分了(start = mid + 1), 反之亦然。 + +我们以([6,7,8,1,2,3,4,5], 4)为例讲解一下: + +![search-in-rotated-sorted-array-1](../assets/problems/search-in-rotated-sorted-array-1.jpg) + + +![search-in-rotated-sorted-array-1](../assets/problems/search-in-rotated-sorted-array-2.jpg) + + +## 关键点解析 + +- 二分法 +- 找出有序区间,然后根据target是否在有序区间舍弃一半元素 +## 代码 + +* 语言支持: Javascript + +```js +/* + * @lc app=leetcode id=33 lang=javascript + * + * [33] Search in Rotated Sorted Array + */ +/** + * @param {number[]} nums + * @param {number} target + * @return {number} + */ +var search = function(nums, target) { + // 时间复杂度:O(logn) + // 空间复杂度:O(1) + // [6,7,8,1,2,3,4,5] + let start = 0; + let end = nums.length - 1; + + while (start <= end) { + const mid = start + ((end - start) >> 1); + if (nums[mid] === target) return mid; + + // [start, mid]有序 + + // ️⚠️注意这里的等号 + if (nums[mid] >= nums[start]) { + //target 在 [start, mid] 之间 + + // 其实target不可能等于nums[mid], 但是为了对称,我还是加上了等号 + if (target >= nums[start] && target <= nums[mid]) { + end = mid - 1; + } else { + //target 不在 [start, mid] 之间 + start = mid + 1; + } + } else { + // [mid, end]有序 + + // target 在 [mid, end] 之间 + if (target >= nums[mid] && target <= nums[end]) { + start = mid + 1; + } else { + // target 不在 [mid, end] 之间 + end = mid - 1; + } + } + } + + return -1; +}; +``` + +## 扩展 + + +