package Ġsolution Ċ Ċ import Ġkotlin . math . abs Ċ Ċ class ĠLe etCode Kt Ġ{ ĊĊĠĠĠ Ġfun Ġlicense Key Formatting ( S : ĠString , ĠK : ĠInt ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġchars Ġ= ĠS . filter Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit Ġ!= Ġ'-' ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġbuffer Ġ= ĠStringBuilder ( chars ) ĊĠĠĠĠĠĠĠ Ġval Ġstep Ġ= Ġ( chars . length Ġ- ĠK ). down To ( 1 ). step ( K ) ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġstep ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuffer . insert ( i , Ġ"- ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġbuffer . toString (). toUpperCase () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġfib ( N : ĠInt ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġa Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġvar Ġb Ġ= Ġ 1 ĊĠĠĠĠĠĠĠ Ġrepeat ( N Ġ- Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġc Ġ= Ġa Ġ+ Ġb ĊĠĠĠĠĠĠĠĠĠĠĠ Ġa Ġ= Ġb ĊĠĠĠĠĠĠĠĠĠĠĠ Ġb Ġ= Ġc ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( N Ġ== Ġ 0 ) Ġ 0 Ġelse Ġb ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdistribute C and ies ( cand ies : ĠInt Array ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġset Ġ= ĠHashSet < Int >() ĊĠĠĠĠĠĠĠ Ġc and ies . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it Ġ! in Ġset ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset . add ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( set . size Ġ>= Ġc and ies . size Ġ/ Ġ 2 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġc and ies . size Ġ/ Ġ 2 ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset . size ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġfour Sum ( nums : ĠInt Array , Ġtarget : ĠInt ): ĠList < List < Int >> Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠArrayList < List < Int >>() ĊĠĠĠĠĠĠĠ Ġnums . sort () ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġnums . size Ġ- Ġ 3 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( j Ġin Ġi Ġ+ Ġ 1 Ġuntil Ġnums . size Ġ- Ġ 2 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( k Ġin Ġj Ġ+ Ġ 1 Ġuntil Ġnums . size Ġ- Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( l Ġin Ġk Ġ+ Ġ 1 Ġuntil Ġnums . size ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( nums [ i ] Ġ+ Ġnums [ j ] Ġ+ Ġnums [ k ] Ġ+ Ġnums [ l ] Ġ== Ġtarget ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġarray Ġ= Ġarray ListOf ( nums [ i ], Ġnums [ j ], Ġnums [ k ], Ġnums [ l ]) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġadd Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it [ 0 ] Ġ== Ġnums [ i ] Ġ&& Ġit [ 1 ] Ġ== Ġnums [ j ] Ġ&& Ġit [ 2 ] Ġ== Ġnums [ k ] Ġ&& Ġit [ 3 ] Ġ== Ġnums [ l ]) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ forEach ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( add ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . add ( array ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġthree Sum ( nums : ĠInt Array ): ĠList < List < Int >> Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠArrayList < List < Int >>() ĊĠĠĠĠĠĠĠ Ġnums . sort () ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġnums . indices ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( i Ġ== Ġ 0 Ġ|| Ġnums [ i ] Ġ> Ġnums [ i Ġ- Ġ 1 ]) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġl Ġ= Ġi Ġ+ Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġr Ġ= Ġnums . size Ġ- Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhile Ġ( l Ġ< Ġr ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġs Ġ= Ġnums [ i ] Ġ+ Ġnums [ l ] Ġ+ Ġnums [ r ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġs Ġ== Ġ 0 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . add ( array ListOf ( nums [ i ], Ġnums [ l ], Ġnums [ r ])) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġl ++ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġr -- ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhile Ġ( l Ġ< Ġr Ġ&& Ġnums [ l Ġ- Ġ 1 ] Ġ== Ġnums [ l ]) Ġl ++ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhile Ġ( l Ġ< Ġr Ġ&& Ġnums [ r Ġ+ Ġ 1 ] Ġ== Ġnums [ r ]) Ġr -- ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġs Ġ> Ġ 0 Ġ-> Ġr -- ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġl ++ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġhttps :// leetcode - cn . com / problems / 3 sum - closest / ĊĠĠĠĠ Ġ* Ġ ç»Ļ å®ļ ä¸Ģä¸ª åĮħæĭ¬ Âł n Ġä¸ª æķ´æķ° çļĦ æķ°ç»Ħ Âł nums Âł åĴĮ Ġ ä¸Ģä¸ª çĽ®æłĩ åĢ¼ Âł target ãĢĤ æī¾ åĩº Âł nums Âł ä¸ŃçļĦ ä¸īä¸ª æķ´æķ° ï¼Į ä½¿ å¾Ĺ å®ĥä»¬ çļĦ åĴĮ ä¸İ Âł target Âł æľĢ æİ¥ è¿ĳ ãĢĤ è¿ĶåĽŀ è¿Ļ ä¸ī ä¸ªæķ° çļĦ åĴĮ ãĢĤ åģĩ å®ļ æ¯ı ç»Ħ è¾ĵåħ¥ åıª åŃĺåľ¨ åĶ¯ä¸Ģ çŃĶ æ¡Ī ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġthree Sum Closest ( nums : ĠInt Array , Ġtarget : ĠInt ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġnums . sort () ĊĠĠĠĠĠĠĠ Ġvar Ġresult Ġ= Ġnums [ 0 ] Ġ+ Ġnums [ 1 ] Ġ+ Ġnums [ 2 ] ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġnums . size Ġ- Ġ 2 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( j Ġin Ġi Ġ+ Ġ 1 Ġuntil Ġnums . size Ġ- Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( k Ġin Ġj Ġ+ Ġ 1 Ġuntil Ġnums . size ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġs Ġ= Ġnums [ i ] Ġ+ Ġnums [ j ] Ġ+ Ġnums [ k ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( abs ( s Ġ- Ġtarget ) Ġ< Ġabs ( result Ġ- Ġtarget )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult Ġ= Ġs ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠ Ġ} Ċ }