package Ġio . math Ċ Ċ import Ġio . utils . run Tests Ċ import Ġkotlin . math . absolute Value Ċ Ċ // Ġhttps :// leetcode . com / problems / 3 sum - closest / Ċ class ĠSum Closest 3 Numbers Ġ{ ĊĊĠ Ġfun Ġexecute ( input : ĠInt Array , Ġtarget : ĠInt ): ĠInt Ġ{ ĊĠĠĠ Ġinput . sort () ĊĠĠĠ Ġvar Ġclosest : ĠInt ? Ġ= Ġnull ĊĠĠĠ Ġfor Ġ( index Ġin Ġ 0 Ġuntil Ġinput . size Ġ- Ġ 2 ) Ġ{ ĊĠĠĠĠĠ Ġval Ġvalue Ġ= Ġinput [ index ] ĊĠĠĠĠĠ Ġval Ġsum Ġ= Ġtarget Ġ- Ġvalue ĊĠĠĠĠĠ Ġvar Ġlow Ġ= Ġindex Ġ+ Ġ 1 ĊĠĠĠĠĠ Ġvar Ġhigh Ġ= Ġinput . size Ġ- Ġ 1 ĊĠĠĠĠĠ Ġwhile Ġ( low Ġ< Ġhigh ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġextra Ġ= Ġinput [ low ] Ġ+ Ġinput [ high ] ĊĠĠĠĠĠĠĠ Ġif Ġ( closest Ġ== Ġnull Ġ|| Ġ( target Ġ- Ġ( value Ġ+ Ġextra )). absolute Value Ġ< Ġ( target Ġ- Ġclosest ). absolute Value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġclosest Ġ= Ġvalue Ġ+ Ġextra ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġsum Ġ== Ġextra Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtarget ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠ Ġextra Ġ< Ġsum Ġ-> Ġlow ++ ĊĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġhigh -- ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġclosest Ġ?: Ġ 0 ĊĠ Ġ} Ċ } Ċ Ċ fun Ġmain () Ġ{ ĊĠ Ġrun Tests ( listOf ( ĊĠĠĠĠĠ ĠTrip le ( int ArrayOf ( 0 , Ġ- 5 , Ġ 1 , Ġ- 3 , Ġ 8 , Ġ 3 , Ġ 9 ), Ġ- 3 , Ġ- 2 ), ĊĠĠĠĠĠ ĠTrip le ( int ArrayOf ( 0 , Ġ- 5 , Ġ 1 , Ġ- 3 , Ġ 8 , Ġ 3 , Ġ 9 ), Ġ 0 , Ġ 0 ), ĊĠĠĠĠĠ ĠTrip le ( int ArrayOf ( 0 , Ġ- 5 , Ġ 1 , Ġ- 3 , Ġ 8 , Ġ 3 , Ġ 9 ), Ġ- 6 , Ġ- 5 ), ĊĠĠĠĠĠ ĠTrip le ( int ArrayOf (- 3 , Ġ- 2 , Ġ- 5 , Ġ 3 , Ġ- 4 ), Ġ- 1 , Ġ- 2 ) ĊĠ Ġ)) Ġ{ Ġ( input , Ġtarget , Ġvalue ) Ġ-> Ġvalue Ġto ĠSum Closest 3 Numbers (). execute ( input , Ġtarget ) Ġ} Ċ }