• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            Just for i0'

            Love i0

            網(wǎng)易暨Topcoder之有道難題,解題和一點體會

            周末在線做網(wǎng)易有道難題的挑戰(zhàn)賽,三個題目分值分別為350,500,1000分,第一道題理解并寫出來,但被別人cha掉;

            第二題理解題意,算法模模糊糊,不知道怎么寫。最后時間來不及寫完。 第三題沒來得及看。

             

            第一題被cha的概率很高,說明大家對算法都存在同樣的問題,看著差不多,其實有很多邏輯的混亂。至少我的第一題后來發(fā)現(xiàn)的確存在思路上的問題。 教訓(xùn):寫代碼之前算法一定要想清楚,邏輯完備很重要。

             

            看了AcRush的算法,不得不佩服。另一個感受就是:當(dāng)數(shù)據(jù)或者數(shù)據(jù)量發(fā)生質(zhì)變時,特別注意一下兩個問題:

            1、暴力還能否解決問題 

            2、很多時候都有更好的算法來解決。

             

            下面是350分的題目和根據(jù)AcRush的代碼改寫的Java版。

             

            網(wǎng)易有道難題TopCoder 在線挑戰(zhàn)賽 350 分題

            Problem Statement   

            如果一個數(shù)字十進制表達時,不存在連續(xù)兩位相同,則稱之為“不重復(fù)數(shù)”。例如,105123412121 都是“不重復(fù)數(shù)”,而111001225 不是。

            給定一個long 類型數(shù)字A ,返回大于A 的最小“不重復(fù)數(shù)”。

            Definition   

            Class:UnrepeatingNumbers

            Method:getNext

            Parameters: long

            Returns:long

            Method signature: long getNext(long A)

            (be sure your method is public)

            Constraints-

            A 取值范圍是[0, 10^17] ,注意是閉區(qū)間。

            Examples

            0)  

            54

            Returns: 56

            大于54 的最小數(shù)字是55 ,但55 不是“不重復(fù)數(shù)”。下一個數(shù)字是56 ,它滿足條件。

            1)   

            10

            Returns: 12

            2)  

            9

            Returns: 10

            3)   

            98

            Returns: 101

            99 100 都不是“不重復(fù)數(shù)”,但101 是。

            4)   

            21099

            Returns: 21201

            This problem statement is the exclusive and proprietary property of TopCoder, Inc. Any unauthorized use or reproduction of this information without the prior written consent of TopCoder, Inc. is strictly prohibited. (c)2003, TopCoder, Inc. All rights reserved.

             

             一種解法:

            import java.util.Scanner;

            public class UnrepeatingNumbers {
                
                
            public static void main(String[] args) {
                 
                    UnrepeatingNumbers un
            =new UnrepeatingNumbers();
                    Scanner cin
            =new Scanner(System.in);
                    
            while(true)
                    {
                     System.out.println(un.getNext(cin.nextLong()));
                    }
                }    
                
            public  long checkAndIterate (long n)
                {
                    StringBuffer s
            =new StringBuffer(String.valueOf(n));    
                    
            for(int i=0; i+1<s.length();i++)
                    {
                        
            if(s.charAt(i)==s.charAt(i+1))
                        {
                              
            long p10=1;
                              
            for(int j=i+2; j<s.length(); j++)                  
                              {    
                                  s.setCharAt(j,
            '0');    
                                  p10
            *=10;    
                              }                     
                              n
            =Long.parseLong(s.toString())+p10;    
                             
            return n;
                        }
                    }
                     
            return -1;
                }
                
            long getNext(long A)
                {
                    A
            ++;
                    
            long     temp=1;
                    
            while(temp>0)
                        { 
                        temp
            =checkAndIterate(A);
                        
            if(temp>0) A=temp;
                        }         
                    
            return A;
                }

            }


            希望對大家有幫助。算法的本質(zhì)在于效率。

            posted on 2009-06-24 17:21 for_I0 閱讀(1033) 評論(1)  編輯 收藏 引用 所屬分類: JavaACM、Topcoder 算法

            Feedback

            # re: 網(wǎng)易暨Topcoder之有道難題,解題和一點體會 2013-03-19 12:33 黃建

            估計與跟下40最接近的兩個整數(shù)是多少  回復(fù)  更多評論   



            只有注冊用戶登錄后才能發(fā)表評論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


            亚洲成色www久久网站夜月| 欧美一区二区精品久久| 国内精品综合久久久40p| 久久综合香蕉国产蜜臀AV| 99久久免费国产特黄| 国产精品免费久久| 久久久久久曰本AV免费免费| 国产精品18久久久久久vr| 人人狠狠综合久久亚洲高清| 久久永久免费人妻精品下载| 91精品免费久久久久久久久| 狠狠色婷婷久久一区二区| 成人亚洲欧美久久久久| 亚洲人成精品久久久久| 久久精品无码免费不卡| 国产亚洲美女精品久久久久狼| 久久人妻少妇嫩草AV蜜桃| 99久久免费国产特黄| 狠狠精品久久久无码中文字幕| 久久国产成人午夜aⅴ影院| 国产精品欧美久久久天天影视| 中文字幕精品久久| 久久97久久97精品免视看| 久久精品一区二区国产| 亚洲伊人久久精品影院| 少妇无套内谢久久久久| 精品免费久久久久国产一区| 四虎国产永久免费久久| 久久99精品国产99久久6| 久久午夜综合久久| 久久精品视频网| 婷婷综合久久中文字幕| 无码久久精品国产亚洲Av影片 | 久久久久99精品成人片牛牛影视| 无码人妻精品一区二区三区久久| 2020久久精品亚洲热综合一本| 久久综合狠狠综合久久97色| 久久久久一本毛久久久| 青青热久久国产久精品| 亚洲欧美国产精品专区久久| 综合久久一区二区三区|