package Ġheap Ċ Ċ import Ġkotlin . math . max Ċ Ċ /** Ċ Ġ* Ġ ç»Ļ å®ļ ä¸Ģä¸ª Ġn Ġx Ġn Ġ çŁ©éĺµ ï¼Į åħ¶ä¸Ń æ¯ı è¡Į åĴĮ æ¯ı åĪĹ åħĥç´ł åĿĩ æĮī åįĩ åºı æİĴåºı ï¼Į æī¾åĪ° çŁ©éĺµ ä¸Ń ç¬¬ k å°ı çļĦ åħĥç´ł ãĢĤ Ċ Ġ* è¯· æ³¨æĦı ï¼Į å®ĥ æĺ¯ æİĴåºı åĲİçļĦ ç¬¬ k å°ı åħĥç´ł ï¼Į èĢĮä¸įæĺ¯ ç¬¬ k ä¸ª åħĥç´ł ãĢĤ Ċ Ġ* Ċ Ġ* ç¤ºä¾ĭ : Ċ Ġ* Ċ Ġ* matrix Ġ= Ġ[ Ċ Ġ*[ Ġ 1 , ĠĠ 5 , ĠĠ 9 ], Ċ Ġ*[ 1 0 , Ġ 1 1 , Ġ 1 3 ], Ċ Ġ*[ 1 2 , Ġ 1 3 , Ġ 1 5 ] Ċ Ġ* ], Ċ Ġ* k Ġ= Ġ 8 , Ċ Ġ* Ċ Ġ* è¿ĶåĽŀ Ġ 1 3 ãĢĤ Ċ Ġ* è¯´æĺİ : Ċ Ġ* ä½łåı¯ä»¥ åģĩ è®¾ Ġk ĠçļĦ åĢ¼ æ°¸ è¿ľ æĺ¯ æľīæķĪ çļĦ , Ġ 1 Ġâī ¤ Ġk Ġâī ¤ Ġn 2 ĠãĢĤ Ċ Ġ*/ Ċ class ĠLe etCode 3 7 8 Ġ{ ĊĠĠĠ Ġfun Ġk th Sm allest ( matrix : ĠArray < IntArray >, Ġk : ĠInt ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġheap Array Ġ= ĠInt Array ( matrix [ 0 ]. size Ġ* Ġmatrix . size ) ĊĠĠĠĠĠĠĠ Ġfor Ġ( y Ġin Ġ 0 Ġuntil Ġmatrix . size ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( x Ġin Ġ 0 Ġuntil Ġmatrix [ y ]. size ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġheap Array [ matrix [ 0 ]. size Ġ* Ġy Ġ+ Ġx ] Ġ= Ġmatrix [ y ][ x ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġbegin Ġ= Ġheap Array . last Index Ġ/ Ġ 2 ĊĠĠĠĠĠĠĠ Ġfor Ġ( start Ġin Ġbegin Ġdown To Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmax Heap ify ( heap Array , Ġstart , Ġheap Array . last Index ) ĊĠĠĠĠĠĠĠ Ġvar Ġsize Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġwhile Ġ( size Ġ< Ġheap Array . size ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsw ip ( heap Array , Ġ 0 , Ġheap Array . last Index Ġ- Ġsize ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsize ++ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmax Heap ify ( heap Array , Ġ 0 , Ġheap Array . last Index Ġ- Ġsize ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġheap Array [ k Ġ- Ġ 1 ] ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġmax Heap ify ( nums : ĠInt Array , Ġindex : ĠInt , Ġlen : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġleft Ġ= Ġindex Ġ* Ġ 2 ĊĠĠĠĠĠĠĠ Ġval Ġright Ġ= Ġleft Ġ+ Ġ 1 ĊĠĠĠĠĠĠĠ Ġvar Ġmax Ġ= Ġleft ĊĠĠĠĠĠĠĠ Ġif Ġ( left Ġ> Ġlen ) Ġreturn ĊĠĠĠĠĠĠĠ Ġif Ġ( right Ġ<= Ġlen Ġ&& Ġnums [ left ] Ġ< Ġnums [ right ]) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmax Ġ= Ġright ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( nums [ max ] Ġ> Ġnums [ index ]) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsw ip ( nums , Ġmax , Ġindex ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmax Heap ify ( nums , Ġmax , Ġlen ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġsw ip ( nums : ĠInt Array , Ġx : ĠInt , Ġy : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtemp Ġ= Ġnums [ x ] ĊĠĠĠĠĠĠĠ Ġnums [ x ] Ġ= Ġnums [ y ] ĊĠĠĠĠĠĠĠ Ġnums [ y ] Ġ= Ġtemp ĊĠĠĠ Ġ} Ċ } Ċ Ċ /** Ċ Ġ* Ġ[[ 1 , 3 , 5 ],[ 6 , 7 , 1 2 ],[ 1 1 , 1 4 , 1 4 ]] Ċ 1 Ċ [[ 1 , 5 , 9 ],[ 1 0 , 1 1 , 1 3 ],[ 1 2 , 1 3 , 1 5 ]] Ċ Ġ*/ Ċ fun Ġmain () Ġ{ ĊĠĠĠ Ġprintln ( ĊĠĠĠĠĠĠĠ ĠLe etCode 3 7 8 (). k th Sm allest ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġint ArrayOf ( 1 , Ġ 3 , Ġ 5 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġint ArrayOf ( 6 , Ġ 7 , Ġ 1 2 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġint ArrayOf ( 1 1 , Ġ 1 4 , Ġ 1 4 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ, Ġ 1 ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ) ĊĠĠĠ Ġprintln ( ĊĠĠĠĠĠĠĠ ĠLe etCode 3 7 8 (). k th Sm allest ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġint ArrayOf ( 1 , 5 , 9 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġint ArrayOf ( 1 0 , 1 1 , 1 3 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġint ArrayOf ( 1 2 , 1 3 , 1 5 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ, Ġ 8 ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ) Ċ }