package Ġpl . dm ich al ski . algorithms ._ 4 _ sum _ zero Ċ Ċ internal Ġclass ĠSum To Zero Service 2 Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠO ( n ) Ġtime Ġcomplexity ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġsum Zero ( values : ĠInt Array ): ĠInt Array ? Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġleft Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġvar Ġright Ġ= Ġvalues . size Ġ- Ġ 1 ĊĠĠĠĠĠĠĠ Ġwhile Ġ( left Ġ< Ġright ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsum Ġ= Ġvalues [ left ] Ġ+ Ġvalues [ right ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsum Ġ== Ġ 0 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġint ArrayOf ( values [ left ], Ġvalues [ right ]) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsum Ġ> Ġ 0 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġright -- ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġleft ++ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠ Ġ} Ċ Ċ } Ċ