package Ġle et code . q 4 . kotlin ; Ċ Ċ import Ġorg . junit . jupiter . api . Assertions Ċ import Ġorg . junit . jupiter . params . Parameterized Test Ċ import Ġorg . junit . jupiter . params . provider . Arguments Ċ import Ġorg . junit . jupiter . params . provider . Method Source Ċ import Ġjava . util . LinkedList Ċ Ċ class ĠSolution Ġ{ ĊĊĠĠĠ Ġfun Ġfind Median Sorted Arrays ( nums 1 : ĠInt Array , Ġnums 2 : ĠInt Array ): ĠDouble Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġm Ġ= Ġnums 1 . size ĊĠĠĠĠĠĠĠ Ġval Ġn Ġ= Ġnums 2 . size ĊĠĠĠĠĠĠĠ Ġval Ġqueue 1 Ġ= ĠLinkedList < Int >( nums 1 . toList ()) ĊĠĠĠĠĠĠĠ Ġval Ġqueue 2 Ġ= ĠLinkedList < Int >( nums 2 . toList ()) ĊĠĠĠĠĠĠĠ Ġfun Ġnext Small (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( queue 1 . isNotEmpty () Ġ&& Ġqueue 2 . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġa Ġ= Ġqueue 1 . element () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġb Ġ= Ġqueue 2 . element () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( a Ġ< Ġb ) Ġqueue 1 . remove () Ġelse Ġqueue 2 . remove () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( queue 1 . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġqueue 1 . remove () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( queue 2 . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġqueue 2 . remove () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ 0 ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġvar Ġc Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġwhile Ġ( c Ġ< Ġ( m Ġ+ Ġn Ġ+ Ġ 1 ) Ġ/ Ġ 2 Ġ- Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext Small () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġc ++ ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ(( m Ġ+ Ġn ) Ġ% Ġ 2 Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( next Small () Ġ+ Ġnext Small ()) Ġ/ Ġ 2 . 0 ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext Small (). toDouble () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠSolution Test Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġsolution Ġ= ĠSolution () ĊĊĠĠĠ Ġ@ Parameterized Test ( name Ġ= Ġ" find Median Sorted Arrays ({ 0 }, Ġ{ 1 }) Ġ= Ġ{ 2 }") ĊĠĠĠ Ġ@ Method Source (" provider ") ĊĠĠĠ Ġfun Ġfind Median Sorted Arrays ( nums 1 : ĠInt Array , Ġnums 2 : ĠInt Array , Ġoutput : ĠDouble ) Ġ{ ĊĠĠĠĠĠĠĠ ĠAssertions . assertEquals ( solution . find Median Sorted Arrays ( nums 1 , Ġnums 2 ), Ġoutput ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġprovider (): ĠList < Arguments > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠArguments . of ( int ArrayOf ( 1 , Ġ 3 ), Ġint ArrayOf ( 2 ), Ġ 2 . 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠArguments . of ( int ArrayOf ( 1 , Ġ 2 ), Ġint ArrayOf ( 3 , Ġ 4 ), Ġ 2 . 5 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠArguments . of ( int ArrayOf (), Ġint ArrayOf (), Ġ 0 . 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠArguments . of ( int ArrayOf ( 1 , Ġ 3 , Ġ 4 , Ġ 2 , Ġ 5 , Ġ 8 , Ġ 3 , Ġ 6 ), Ġint ArrayOf (), Ġ 3 . 5 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠArguments . of ( int ArrayOf ( 1 , Ġ 2 , Ġ 3 ), Ġint ArrayOf ( 2 ), Ġ 2 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ