package Ġcom . daily . algo th rim . leetcode . medium Ċ Ċ /** Ċ Ġ* Ġ 3 3 . Ġæ Ĳ ľç´¢ æĹ ĭ è½¬ æİĴåºı æķ°ç»Ħ Ċ Ġ* Ċ Ġ* Ġ æķ´æķ° æķ°ç»Ħ Ġnums Ġ æĮī åįĩ åºı æİĴ åĪĹ ï¼Į æķ°ç»Ħ ä¸ŃçļĦ åĢ¼ Ġ äºĴ ä¸į çĽ¸åĲĮ ĠãĢĤ Ċ Ġ* Ġåľ¨ ä¼łéĢĴ ç»Ļ åĩ½æķ° ä¹ĭåīį ï¼Į nums Ġåľ¨ é¢Ħ åħĪ æľª çŁ¥ çļĦ æŁĲä¸ª ä¸ĭ æłĩ Ġk ï¼Ī 0 Ġ<= Ġk Ġ< Ġnums . length ï¼ī ä¸Ĭ è¿Ľè¡Į äºĨ Ġ æĹ ĭ è½¬ ï¼Į ä½¿ æķ°ç»Ħ åıĺ ä¸º Ġ[ nums [ k ], Ġnums [ k + 1 ], Ġ..., Ġnums [ n - 1 ], Ġnums [ 0 ], Ġnums [ 1 ], Ġ..., Ġnums [ k - 1 ]] ï¼Ī ä¸ĭ æłĩ Ġä»İ Ġ 0 Ġ å¼Ģå§ĭ Ġ è®¡ æķ° ï¼īãĢĤ ä¾ĭå¦Ĥ ï¼Į Ġ[ 0 , 1 , 2 , 4 , 5 , 6 , 7 ] Ġåľ¨ ä¸ĭ æłĩ Ġ 3 Ġ å¤Ħ ç»ı æĹ ĭ è½¬ åĲİ åı¯èĥ½ åıĺ ä¸º Âł [ 4 , 5 , 6 , 7 , 0 , 1 , 2 ] ĠãĢĤ Ċ Ġ* Ġ ç»Ļ ä½ł Ġ æĹ ĭ è½¬ åĲİ ĠçļĦ æķ°ç»Ħ Ġnums ĠåĴĮ ä¸Ģä¸ª æķ´æķ° Ġtarget Ġï¼Į å¦Ĥæŀľ Ġnums Ġä¸Ń åŃĺåľ¨ è¿Ļä¸ª çĽ®æłĩ åĢ¼ Ġtarget Ġï¼Į åĪĻ è¿ĶåĽŀ å®ĥçļĦ ä¸ĭ æłĩ ï¼Į åĲ¦åĪĻ è¿ĶåĽŀ Âł - 1 Âł ãĢĤ Ċ Ġ*/ Ċ class ĠSearch Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġmain ( args : ĠArray < String >) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ( Search (). search ( int ArrayOf ( 4 , Ġ 5 , Ġ 6 , Ġ 7 , Ġ 0 , Ġ 1 , Ġ 2 ), Ġ 0 )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ( Search (). search ( int ArrayOf ( 4 , Ġ 5 , Ġ 6 , Ġ 7 , Ġ 0 , Ġ 1 , Ġ 2 ), Ġ 3 )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ( Search (). search ( int ArrayOf ( 1 ), Ġ 0 )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ( Search (). search ( int ArrayOf ( 3 , Ġ 1 ), Ġ 1 )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġsearch ( nums : ĠInt Array , Ġtarget : ĠInt ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġstart Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġvar Ġend Ġ= Ġnums . size Ġ- Ġ 1 ĊĊĠĠĠĠĠĠĠ Ġwhile Ġ( start Ġ<= Ġend ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmid Ġ= Ġstart Ġ+ Ġ( end Ġ- Ġstart ). shr ( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( target Ġ== Ġnums [ mid ]) Ġreturn Ġmid ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( nums [ start ] Ġ<= Ġnums [ mid ]) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( target Ġ< Ġnums [ mid ] Ġ&& Ġtarget Ġ>= Ġnums [ start ]) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġend Ġ= Ġmid Ġ- Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart Ġ= Ġmid Ġ+ Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( target Ġ> Ġnums [ mid ] Ġ&& Ġtarget Ġ<= Ġnums [ end ]) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart Ġ= Ġmid Ġ+ Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġend Ġ= Ġmid Ġ- Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġ- 1 ĊĠĠĠ Ġ} Ċ }