package Ġcom . hi . d hl . algorithms . offer ._ 2 1 . kotlin Ċ Ċ /** Ċ Ġ* Ġ< pre > Ċ Ġ* ĠĠĠĠ Ġauthor : Ġd hl Ċ Ġ* ĠĠĠĠ Ġdate Ġ Ġ: Ġ 2 0 2 0 / 8 / 2 8 Ċ Ġ* ĠĠĠĠ Ġdesc Ġ Ġ: Ċ Ġ* Ġ</ pre > Ċ Ġ*/ Ċ Ċ class ĠSolution Ġ{ ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ å·¦ åı³ æĮĩéĴĪ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġexchange ( nums : ĠInt Array ): ĠInt Array Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġleft Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġvar Ġright Ġ= Ġnums . size Ġ- Ġ 1 ĊĠĠĠĠĠĠĠ Ġwhile Ġ( left Ġ< Ġright ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġand Ġ== Ġ& ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhile Ġ( left Ġ< Ġright Ġ&& Ġnums [ left ] Ġand Ġ 1 Ġ== Ġ 1 ) Ġleft ++ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhile Ġ( left Ġ< Ġright Ġ&& Ġnums [ right ] Ġand Ġ 1 Ġ!= Ġ 1 ) Ġright -- ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( left Ġ< Ġright ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġxor Ġ== Ġ^ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnums [ left ] Ġ= Ġnums [ left ] Ġxor Ġnums [ right ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnums [ right ] Ġ= Ġnums [ left ] Ġxor Ġnums [ right ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnums [ left ] Ġ= Ġnums [ left ] Ġxor Ġnums [ right ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġnums ; ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ å¿« æħ¢ æĮĩéĴĪ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġexchange 2 ( nums : ĠInt Array ): ĠInt Array Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġshow Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġvar Ġfast Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġval Ġsize Ġ= Ġnums . size ĊĠĠĠĠĠĠĠ Ġwhile Ġ( fast Ġ< Ġsize ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġand Ġ== Ġ& ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( nums [ fast ] Ġand Ġ 1 Ġ== Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtmp Ġ= Ġnums [ show ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnums [ show ] Ġ= Ġnums [ fast ]; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnums [ fast ] Ġ= Ġtmp ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow ++ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġfast ++ ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġnums ; ĊĠĠĠ Ġ} Ċ } Ċ