2017ÄêÉϰëÄêÈí¼þÉè¼ÆÊ¦ÏÂÎçÕæÌâÊÔ¾í ÏÂÔØ±¾ÎÄ

¡¾·ÖÎöÎÊÌâ¡¿

½«nöӲ±Ò·Ö³ÉÏàµÈµÄÁ½²¿·Ö:

(1)µ±nΪżÊýʱ£¬½«Ç°ºóÁ½²¿·Ö£¬¼´ 1¡£¡£¡£n/2ºÍn/2+1¡£¡£¡£0£¬·ÅÔÚÌìÆ½µÄÁ½¶Ë£¬½ÏÇáµÄÒ»¶ËÀïÓмٱң¬¼ÌÐøÔÚ½ÏÇáµÄÕⲿ·ÖÓ²±ÒÖÐÓÃͬÑùµÄ·½·¨ÕÒ³ö¼Ù±Ò: (2)µ±nÎªÆæÊýʱ£¬½«Ç°ºóÁ½²¿·Ö£¬¼´1¡£¡£(n -1)/2ºÍ(n+1)/2+1¡£¡£¡£0£¬·ÅÔÚÌìÆ½µÄÁ½¶Ë£¬½ÏÇáµÄÒ»¶ËÀïÓмٱң¬¼ÌÐøÔÚ½ÏÇáµÄÕⲿ·ÖÓ²±ÒÖÐÓÃͬÑùµÄ·½·¨ÕÒ³ö¼Ù±Ò£»ÈôÁ½¶ËÖØÁ¿ÏàµÈ£¬ÔòÖмäµÄÓ²±Ò£¬¼´µÚ (n+1)/2öӲ±ÒÊǼٱҡ£ ¡¾C´úÂë¡¿

ÏÂÃæÊÇËã·¨µÄCÓïÑÔʵÏÖ£¬ÆäÖÐ: coins[]£º Ó²±ÒÊý×é

first£¬last£ºµ±Ç°¿¼ÂǵÄÓ²±ÒÊý×éÖеĵÚÒ»¸öºÍ×îºóÒ»¸öϱê #include

int getCounterfeitCoin(int coins[]£¬ int first£¬int last) {

int firstSum = 0£¬lastSum = 0; int ¨¬;

if(first==last-1){ /*ֻʣÁ½Ã¶Ó²±Ò*/

if(coins[first] < coins[last]) return first; return last; }

if((last - first + 1) % 2 ==0) {

/*żÊýöӲ±Ò*/ for(i = first;i <( 1 );i++){ firstSum+= coins[i]; }

for(i=first + (last-first) / 2 + 1;i < last +1;i++){

lastSum += coins[i]; }

if( 2 ){

Return getCounterfeitCoin(coins,first,first+(last-first)/2;) } else{

Return getCounterfeitCoin(coins,first+(last-first)/2+1,last;) } } else {

/*ÆæÊýöӲ±Ò*/

for(i=first;i

firstSum+=coins[i]; }

for(i=first+(last-first)/2+1;i

lastSum+=coins[i]; }

if(firstSum

return getCounterfeitCoin(coins,first,first+(last-first)/2-1); }

else if(firstSum>lastSum){

return getCounterfeitCoin(coins,first+(last-first)/2-1,last); } else{

Return( 3 ) } } }

ÎÊÌâ

ÎÊÌ⣺¸ù¾ÝÌâ¸É˵Ã÷£¬Ìî³äC´úÂëÖеĿգ¨1£©-£¨3£© ÎÊÌ⣺¸ù¾ÝÌâ¸É˵Ã÷ºÍC´úÂ룬Ëã·¨²ÉÓÃÁË£¨£©Éè¼Æ²ßÂÔ¡£

º¯ÊýgetCounterfeitCoinµÄʱ¼ä¸´ÔÓ¶ÈΪ£¨£©£¨ÓÃO±íʾ£©¡£

ÎÊÌ⣺ÈôÊäÈëµÄÓ²±ÒÊýΪ30£¬Ôò×îÉٵıȽϴÎÊýΪ£¨£©£¬×î¶àµÄ±È½Ï´ÎÊýΪ£¨£©¡£

´ð°¸½âÎö£º ÎÊÌâ1

£¨1£©first+(last-first)/2 »ò(first+last)/2 £¨2£©firstSum

£¨6£©2 £¨7£©4

ÊÔÌâ·ÖÎö£ºÈôÊäÈë30¸öÓ²±Ò£¬ÕÒ¼ÙÓ²±ÒµÄ±È½Ï¹ý³ÌΪ£º µÚ1´Î£º15 ±È 15£¬´ËʱÄÜ·¢ÏÖ¼Ù±ÒÔÚ15¸öµÄ·¶Î§ÄÚ¡£

µÚ2´Î£º7 ±È 7£¬´Ëʱ£¬Èç¹ûÌìÆ½Á½¶ËÖØÁ¿Ïàͬ£¬ÔòÖмäµÄÓ²±ÒΪ¼Ù±Ò£¬´Ëʱ¿ÉÕÒµ½¼Ù±Ò£¬ÕâÊÇ×îÀíÏëµÄ״̬¡£

µÚ3´Î£º3 ±È 3£¬´ËʱÈôƽºâ£¬ÔòÄÜÕÒ³ö¼Ù±Ò£¬²»Æ½ºâ£¬ÔòÄÜÈ·¶¨¼Ù±ÒΪ3¸öÖеÄ1¸ö¡£

µÚ4´Î£º1 ±È 1£¬µ½ÕâÒ»²½ÎÞÂÛÊÇ·ñƽºâ¶¼ÄÜÕÒ³ö¼Ù±Ò£¬´ËʱΪ×î¶à±È½Ï´ÎÊý¡£ µÚ6Ìâ

ÔĶÁÏÂÁÐ˵Ã÷ºÍ Java´úÂ룬½«Ó¦ÌîÈë (n) ´¦µÄ×Ö¾äдÔÚ´ðÌâÖ½µÄ¶ÔÓ¦À¸ÄÚ¡£ ¡¾ËµÃ÷¡¿Ä³¿ì²ÍÌüÖ÷ÒªÖÆ×÷²¢³öÊÛ¶ùͯÌײͣ¬Ò»°ã°üÀ¨Ö÷²Í(¸÷Àà±ÈÈø)¡¢ÒûÁϺÍ

Íæ¾ß£¬Æä²ÍÆ·ÖÖÀà¿ÉÄܲ»Í¬£¬µ«ÆäÖÆ×÷¹ý³ÌÏàͬ¡£Ç°Ì¨·þÎñÔ± (Waiter) µ÷¶È³øÊ¦ÖÆ×÷Ìײ͡£ÏÖ²ÉÓÃÉú³ÉÆ÷ (Builder) ģʽʵÏÖÖÆ×÷¹ý³Ì£¬µÃµ½Èçͼ 6-1 ËùʾµÄÀàͼ¡£

¡¾Java´úÂë¡¿ class Pizza{

private String parts£»

public void setParts(String parts) { this¡£parts = parts; } public String toString() { return this¡£parts; } }

abstract class PizzaBuilder{

protected Pizza pizza;

public Pizza getPizza() { return pizza; }

public void createNewPizza() { pizza = new Pizza(); } public (1) ; }

class HawaiianPizzaBuilder extends PizzaBuilder{

public void buildParts(){