愛奇藝2018春招 大資料方向筆試分析

2021-08-19 02:18:38 字數 1452 閱讀 5369

作為一名普通的大三學生,第一次做筆試,所以想發表一些對愛奇藝筆試的看法**

單選題(45分)

因為是大資料方向,所以單選題考了很多大資料結構的題目,如mapreduce,hadoopde等,作為乙個只上課大資料課的學生來說,我真的對這些一點不知道,還好考試前在牛客刷了點其他公司大資料方向的題,有點印象感覺瞎矇也能對幾道,除此之外,還考了棧,排序,四次揮手等簡單的基礎知識,我的基礎知識還算比較牢固,不至於太差。

程式設計題(60分)

程式設計題總共有2道,都是很基礎的數學題目,並沒有需要用到特殊結構的題

程式設計題1:

1.給予乙個數字n(n≤1000000),然後輸入n個資料(1≤資料≤1000000),尋找n個數中唯一乙個不同的數字,返回該數字的位置,

思路:一開始想設個1000000大小的陣列,然後發現陣列太大了… ̄□ ̄||

突然就想到可以在輸入資料的時候就進行比較,為了發現不同的兩個數字中哪個是正常的數字,所以需要讀入第三個資料,需要的陣列大小為3,方便起見我就直接設為10了。

基本思路是當 i != i-1時,讀入下乙個元素並記錄下乙個 i 到sign中,然後分情況討論輸出 i 或 i -1 或 i - 2,其中 i 的情況是不同的數字於末尾,i -1的情況讀入的第三個數與第二個數不同,i - 2的情況是讀入的第三個數與第二個數相同

#include using namespace std;

int main()

if ((sign == n)&(w[sign % 3] != w[(sign - 1) % 3]))

else

if (w[sign

%3] == w[(sign-1)%3])

else cout << sign - 1;

}

程式設計題2

有三個整數x,y,z,要求進行若干次操作使x,y,z相等,操作有兩種

1.從x,y,z中選擇兩個數都加1

2.從x,y,z中選擇乙個數加2

求最少需要多少次操作

思路:我把三個數按從大到小的排序,方便後來的計算,a是最大的數,b和c有兩種情況,相差為奇數時可以通過(b-c)/2次操作變成b,b-1,然後只要a-b+2次操作就能得到相等,相差為偶數時通過(b-c)/2次操作變成b,b,然後再a-b次操作就相等了

#include 

using namespace std;

void change(int

*a, int

*b)}

int main()

else

if ((b - c)%2== 1)

else

if ((b - c) % 2 == 0)

return

0;}

大三狗第一次做筆試,選擇題大半都不會,程式設計走了大半天彎路才回來,不知道兩個ac能不能進面試 ̄□ ̄||

it

演算法 愛奇藝春招筆試題

一共兩題還是比較簡單的 題目有a,b,c三個數和如下兩個操作 1.任意兩個數 1,2.乙個數 2,假設經過有限步操作一定能使得3個數相等,問最少的操作次數 思路排序後較小的兩個數轉為最大的數其實不管用1還是2方法步數一樣,比如3,3,5使用兩次1還是使用2次2都是得到最終結果,所以只要以最小的次數將...

愛奇藝20屆春招程式設計題1

題目 根據自己的回憶寫出題目大概的意思 輸入一串只包含數字的字串str和乙個整數k,從字串中剔除k個數字,使剩下的字串按照原來的順序,得到的整數最小,輸出這個整數。字串長度n 240,k n。示例1 輸入 12553 2 輸出 123 示例2 輸入 100050 4 輸出 0 錯誤思路 考試的時候,...

愛奇藝18年春招程式設計題題目彙總

一 牛牛學洗牌 分析 按照題目所說的,每一次把前xi張牌和剩下的牌分開,再一張一張從兩疊牌輪流放回去即可。時間複雜度 o n 參考 include using namespace std int a 15 int temp 2 15 int len 2 int main for int i 1 i ...