import Ġjava . lang . Integer . max Ċ Ċ class ĠSolution 1 6 Aug Ġ{ ĊĠĠĠ Ġfun Ġmax Profit ( prices : ĠInt Array ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsize Ġ= Ġprices . size ĊĠĠĠĠĠĠĠ Ġval Ġbalance Ġ= ĠArray < Int >( size Ġ+ Ġ 1 ) Ġ{ ĠInt . MIN _ VALUE Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġprofit Ġ= ĠArray < Int >( size Ġ+ Ġ 1 ) Ġ{ Ġ 0 Ġ} ĊĊĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġprices . indices ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( j Ġin Ġ 1 .. 2 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbalance [ j ] Ġ= Ġmax ( profit [ j Ġ- Ġ 1 ] Ġ- Ġprices [ i ], Ġbalance [ j ]) Ġ// Ġwhether Ġto Ġbuy Ġat Ġprices [ i ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprofit [ j ] Ġ= Ġmax ( balance [ j ] Ġ+ Ġprices [ i ], Ġprofit [ j ]) Ġ// Ġwhether Ġto Ġsell Ġat Ġprices [ i ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġprofit . last () ĊĠĠĠ Ġ} Ċ } Ċ