package Ġio . array Ċ Ċ import Ġio . utils . run Tests Ċ Ċ // Ġhttps :// leetcode . com / explore / learn / card / array - and - string / 2 0 5 / array - two - pointer - tech nique / 1 2 9 9 / Ċ class ĠMinimum Size Sub Array Sum Ġ{ ĊĊĠ Ġfun Ġexecute ( target : ĠInt , Ġinput : ĠInt Array ): ĠInt Ġ{ ĊĠĠĠ Ġvar Ġresult Ġ= ĠInt . MAX _ VALUE ĊĠĠĠ Ġvar Ġleft Ġ= Ġ 0 ĊĠĠĠ Ġvar Ġsum Ġ= Ġ 0 ĊĠĠĠ Ġfor Ġ( index Ġin Ġinput . indices ) Ġ{ ĊĠĠĠĠĠ Ġsum Ġ+= Ġinput [ index ] ĊĠĠĠĠĠ Ġwhile Ġ( sum Ġ>= Ġtarget ) Ġ{ ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġmin Of ( result , Ġindex Ġ+ Ġ 1 Ġ- Ġleft ) ĊĠĠĠĠĠĠĠ Ġsum Ġ-= Ġinput [ left ++] ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġwhen Ġ( result ) Ġ{ ĊĠĠĠĠĠ ĠInt . MAX _ VALUE Ġ-> Ġ 0 ĊĠĠĠĠĠ Ġelse Ġ-> Ġresult ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġfun Ġexecute Br ute Force ( target : ĠInt , Ġinput : ĠInt Array ): ĠInt Ġ{ ĊĠĠĠ Ġfor Ġ( min Size Ġin Ġ 1 .. input . size ) Ġ{ ĊĠĠĠĠĠ Ġfor Ġ( startIndex Ġin Ġinput . indices ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ( startIndex Ġuntil Ġ( startIndex Ġ+ Ġmin Size )). fold ( 0 ) Ġ{ Ġacc , Ġindex Ġ-> ĊĠĠĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġindex Ġ>= Ġinput . size Ġ-> Ġacc ĊĠĠĠĠĠĠĠĠĠĠĠ Ġacc Ġ+ Ġinput [ index ] Ġ>= Ġtarget Ġ-> Ġreturn Ġmin Size ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġacc Ġ+ Ġinput [ index ] ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġ 0 ĊĠ Ġ} Ċ } Ċ Ċ fun Ġmain () Ġ{ ĊĠ Ġrun Tests ( listOf ( ĊĠĠĠĠĠ ĠTrip le ( int ArrayOf ( 2 , Ġ 3 , Ġ 1 , Ġ 2 , Ġ 4 , Ġ 3 ), Ġ 7 , Ġ 2 ), ĊĠĠĠĠĠ ĠTrip le ( int ArrayOf ( 2 , Ġ 3 , Ġ 1 , Ġ 2 , Ġ 4 , Ġ 3 ), Ġ 5 0 , Ġ 0 ), ĊĠĠĠĠĠ ĠTrip le ( int ArrayOf ( 1 , Ġ 2 , Ġ 3 , Ġ 4 , Ġ 5 ), Ġ 1 1 , Ġ 3 ), ĊĠĠĠĠĠ ĠTrip le ( int ArrayOf ( 1 , Ġ 2 , Ġ 3 , Ġ 4 , Ġ 5 ), Ġ 1 5 , Ġ 5 ) ĊĠ Ġ)) Ġ{ Ġ( input , Ġtarget , Ġvalue ) Ġ-> Ġvalue Ġto ĠMinimum Size Sub Array Sum (). execute ( target , Ġinput ) Ġ} Ċ } Ċ