日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國(guó)內(nèi)最全I(xiàn)T社區(qū)平臺(tái) 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當(dāng)前位置:首頁 > 互聯(lián)網(wǎng) > 雅虎2015校招筆試

雅虎2015校招筆試

來源:程序員人生   發(fā)布時(shí)間:2014-09-29 23:52:27 閱讀次數(shù):3245次
雅虎筆試的難度和強(qiáng)度還是挺大的,英文試題,允許中英文作答。
選擇題里面難度最大的是一道是考察貝葉斯公式的題。題目說的是一種疾病,在100000人會(huì)中有1個(gè)人患這種病,而這種病的診斷正確率為99%。一個(gè)人診斷結(jié)束后被告知患了該種病,求他真正患該種病的概率多大。
貝葉斯公式
B0=患病,B1=沒有患病,A=診斷出患病
P(B0|A)=P(B0)*P(A|B0)/(P(B0)*P(A|B0)+P(B1)*P(A|B1))
       =1/100000*99/100/(1/100000*99/100+99999/100000*1/100)
       =99/100098,近似1/1000

填空題里面難度最大的是求Ackerman函數(shù)值。

Ackerman函數(shù)的定義為:

                 { n+1;                             m=0,n>0   
  A(m,n) = { A(m-1,1);                      n=0,m>0   
                 { A(m-1,A(m,n-1))           n>0,m>0 

求Ackerman(3,8)。

求函數(shù)值代碼如下,Ackerman(3,8)=2045。

public static int Ackerman(int m,int n)
{
     if(m==0)
         return n+1;
    if(n==0)
        return Ackerman(m-1,1);
     return Ackerman(m-1,Ackerman(m,n-1));
}

最正統(tǒng)的解法就是求遞推公式了。

QQ圖片20140922160331.jpg



四道編程題:
1. 給定數(shù)組A[1...n],返回?cái)?shù)組B[1...n],
   其中,B[i] = A[1]*A[2]...A[i-1]*A[i+1]...A[n]。
   不能使用除法,O(n)的時(shí)間復(fù)雜度,O(1)的空間復(fù)雜度。
   這道題不難,不細(xì)說了,代碼就很直白。
public static int[] multiply(int[] A)
{
     int[] B = new int[A.length];

    if(A.length==0)
         return B;
    B[0] = 1;
    for(int i=1;i<A.length;i++)
    {
        B[i] = B[i-1]*A[i-1];
    }

    int suf = 1;

    for(int i=A.length-2;i>=0;i--)
    {
        suf *= A[i+1];
         B[i] *= suf;
    }

    return B;
}
2. 有4k+2個(gè)整數(shù),其中k個(gè)整數(shù)出現(xiàn)了4次,一個(gè)整數(shù)出現(xiàn)了2次。找出出現(xiàn)2次的整數(shù)。
最笨最笨的辦法就是用hash表記錄每個(gè)整數(shù)出現(xiàn)的次數(shù),這樣干估計(jì)只能拿點(diǎn)幸苦分了。
比較通用的辦法就是用32個(gè)整形變量bits_count[32]記錄每一個(gè)bit上1出現(xiàn)的次數(shù),然后選出bits_count[i]%4結(jié)果為2的bits組成一個(gè)整數(shù),就是出現(xiàn)2次的整數(shù)。
高級(jí)一點(diǎn)的辦法就是借用位運(yùn)算,消除出現(xiàn)次數(shù)為4的整數(shù)倍的bit位。
這個(gè)是我的一個(gè)初級(jí)版本。用了4個(gè)臨時(shí)變量。
public static int twosInFours(int[] a)
{
    int ones=0,twos=0,threes=0,fours=0;

    for(int i=0;i<a.length;i++)
    {
        threes &= ~fours;
         twos &= ~fours;
        ones &= ~fours;
        fours = (threes&a[i]);
        threes ^= (twos&a[i]);
        twos ^= (ones&a[i]);
        ones ^= a[i];
    }
    return twos;
}

大神給出了終極版本。
public static int twosInFoursFinal(int[] a)
{
     int flag1 = 0,flag2 = 0;
    for(int i=0;i<a.length;i++)
    {
         flag2 ^= flag1&a[i];
         flag1 ^= a[i];
    }
    return flag2;
}
3. matrix是一個(gè)按行遞增,按列遞增的矩陣。給定元素,判斷該元素在矩陣中是否存在。分析算法的時(shí)間復(fù)雜度。
1 3 5  7  9
2 4 6  8  10
5 7 8  10 15
6 8 10 11 17
public static boolean targetLocate(int[][] matrix,int target)
{
    if(matrix==null||matrix.length==0||matrix[0].length==0)
        return false;
     int rows = matrix.length,columns = matrix[0].length;
    int rdown = 0, rup = rows-1;

    while(rdown<rows&&matrix[rdown][columns-1]<target)
        rdown++;
    while(rup>=0&&matrix[rup][0]>target)
         rup--;
    if(rdown>rup)
        return false;
    for(int i=rdown;i<=rup;i++)
    {
        for(int j=0;j<columns;j++)
        {
             if(matrix[i][j]==target)
                return true;
        }
     }
    return false;
}
最壞情況是O(M*N)。

4.一個(gè)老鼠對(duì)象包含兩個(gè)屬性:體重和速度。輸入一個(gè)老鼠對(duì)象的序列,找出一個(gè)按體重升序、速度降序排列的最大子集。這是一個(gè)最大上升子序列問題。 常規(guī)解法的時(shí)間復(fù)雜度是O(n^2),使用二分查找可使時(shí)間復(fù)雜度降到O(nlog(n))。
public static Mice[] maxRiseSubSeq(Mice[] M)
{
    Arrays.sort(M,new MiceComparator());

    int[] dp = new int[M.length];

    dp[0] = 1;

    int gmax = 0;
    for(int i=1;i<M.length;i++)
    {
        int max = 0;
        for(int j=0;j<i;j++)
        {
             if(dp[j]>dp[max]&&M[j].speed>M[i].speed)
            {
                max = j;
            }
        }

        dp[i] = dp[max] + 1;
         if(dp[i]>dp[gmax])
            gmax = i;
    }

    ArrayList<Mice> result = new ArrayList<>();

     int pre = gmax;
    result.add(M[gmax]);
    for(int i=gmax-1;i>=0;i--)
     {
        if(M[i].speed>M[pre].speed)
        {
             result.add(0, M[i]);
             pre = i;
        }
     }
    Mice[] m = new Mice[result.size()];
     for(int i=0;i<m.length;i++)
        m[i] = result.remove(0);
     return m;
}

class Mice{
     int weight;
    int speed;
     public Mice(int w,int s)
    {
         this.weight = w;
         this.speed = s;
    }
}


class MiceComparator implements Comparator<Mice>{
@Override
    public int compare(Mice o1, Mice o2) {
     if(o1.weight<o2.weight)
        return -1;
    else if(o1.weight>o2.weight)
         return 1;
    else
         return 0;
     }
}


生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對(duì)您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈(zèng)
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: 成人av一区 | 91福利区 | 91看片在线观看视频 | 国产日韩精品视频一区二区三区 | 91精品国产乱码久久久久久久久 | 亚洲欧洲综合 | 欧美日韩综合视频 | 精品不卡在线 | 久久国产精品-国产精品 | 91精品国产麻豆国产自产在线 | 666av视频在线观看 | 国产黄色在线播放 | 爱爱的网站 | 欧美日韩免费做爰视频 | 精品成人久久 | 一区二区精品在线 | 麻豆免费在线 | 欧美性受| 亚洲欧美一区二区三区国产精品 | 欧美一级久久精品 | 欧美日韩高清在线一区 | 久久aaa | 91射区| 玖玖视频网 | 欧美成人一区二区三区 | 国产乱码一区二区三区 | 日韩欧美区 | 国产香蕉精品 | 国产伦精品一区二区三区免费 | 99久草| 久久久久久久久网站 | 午夜精品久久久久久久久久久 | 日韩欧美一区二区三区在线视频 | 久久国产精品久久久久久久久久 | 久久免费精品视频 | 欧美91 | 九九在线视频 | 欧美成人精品在线 | 一区二区三区在线观看视频 | 亚洲一区二区三区欧美 | 人人澡人人添人人爽一区二区 |