package Ġcom . hu is am . kotlin . problem Ċ Ċ class ĠSolution 2 Ġ{ ĊĠĠĠ Ġfun Ġsub sets ( nums : ĠInt Array ): ĠList < List < Int >> Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġanswer Ġ= Ġmutable ListOf < List < Int >>() ĊĠĠĠĠĠĠĠ Ġgo ( nums , Ġ 0 , Ġmutable ListOf (), Ġanswer ) ĊĠĠĠĠĠĠĠ Ġreturn Ġanswer ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġgo ( ĊĠĠĠĠĠĠĠ Ġnums : ĠInt Array , ĊĠĠĠĠĠĠĠ Ġindex : ĠInt , ĊĠĠĠĠĠĠĠ Ġcurrent : ĠMutable List < Int >, ĊĠĠĠĠĠĠĠ Ġanswer : ĠMutable List < List < Int >> ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( index ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnums . size Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġanswer . add ( current . toList ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgo ( nums , Ġindex Ġ+ Ġ 1 , Ġcurrent , Ġanswer ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent . add ( nums [ index ]) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgo ( nums , Ġindex Ġ+ Ġ 1 , Ġcurrent , Ġanswer ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent . remove Last () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun Ġmain () Ġ{ ĊĠĠĠ Ġval Ġnumbers Ġ= Ġint ArrayOf ( 1 , Ġ 2 , Ġ 3 ) ĊĠĠĠ Ġprintln ( Solution 2 (). sub sets ( numbers )) Ċ Ċ }