作為一名普通的大三學生,第一次做筆試,所以想發表一些對愛奇藝筆試的看法**
單選題(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 ...