位元組跳動2019屆校招筆試題

2021-08-24 20:19:38 字數 3343 閱讀 4520

1.世界盃開幕式會在球場c舉行,球場c的球迷看台可以容納m*n個球迷。在球場售票完成後,現官方想統計此次開幕式一共有多少個球隊球迷群體,最大的球隊球迷群體有多少人。

經調研發現,球迷群體在選座時有以下特性:

同球隊的球迷群體會選擇相鄰座位,不同球隊的球迷群體會選擇不相鄰的座位(註解:相鄰包括前後相鄰,左右相鄰,斜對角相鄰)

給定乙個m*n的二維球場,0代表該位置沒有坐人,1代表該位置已有選擇,希望輸出球隊群體個數p,最大的球隊群體人數q

輸入描述:

第一行,2個數字,m及n,使用英文逗號分隔

接下來m行,每行n的數字,使用英文逗號分隔

輸出描述:

一行,2個數字,p及q,使用英文逗號分隔

其中p表示球隊群體個數,q表示最大的球隊群體人數

例:輸入

10,10

0,0,0,0,0,0,0,0,0,0

0,0,0,1,1,0,1,0,0,0

0,1,0,0,0,0,0,1,0,1

1,0,0,0,0,0,0,0,1,1

0,0,0,1,1,1,0,0,0,1

0,0,0,0,0,0,1,0,1,1

0,1,1,0,0,0,0,0,0,0

0,0,0,1,0,1,0,0,0,0

0,0,1,0,0,1,0,0,0,0

0,1,0,0,0,0,0,0,0,0

輸出:6,8

**如下:

#include#include#includeusing namespace std;

int getnum(vector>& people,int i,int j,vector>& reach)

else if(people[i][j]==1&&reach[i][j]==0)else

}void getdata(vector>& people,vector& num,vector>& reach)

cin>>temp;

ptemp.push_back(temp);

people.push_back(ptemp);

} vectornum;

if(people.empty())

it=vp.erase(it+1);

--it;

}else

}}int main()

}while(cin.get()==';');

}mergeindex(vp);

int i=0;

for(;i3. 小a和小b玩乙個遊戲,有n張卡牌,每張上面有兩個正整數x,y。取一張牌時,個人積分增加x,團隊積分增加y。求小a,小b各取若干張牌,使得他們的個人積分相等,且團隊積分最大。

輸入描述:

第一行n

接下來n行,每行兩個正整數x,y

輸出描述:

一行乙個整數

表示小a的積分和小b的積分相等時,團隊積分的最大值

例:輸入

3 12 2

1 41 4

輸出:10

說明:當a抽取(2,2),b抽取(1,4),(1,4)時,兩人個人積分都是2,團隊積分最大,為10分

**如下:

#include#include#include#includeusing namespace std;

int main()

sort(vp.begin(), vp.end(), (pair& p1, pair& p2) );

int** dp = new int* [n];

for (int i = 0; i=0; i--));

} }

cout << dp[0][0] << endl;

for (int i = 0; i < n; i++)

delete dp;

return 0;

}

4. 兩個長度為n的序列a,b。問有多少個區間[l,r]滿足max(a[l,r])輸入描述:

第一行乙個整數n

第二行n個數,第i個為a(i)

第三行n個數,第i個為b(i)

0<1<=r輸出描述:

一行乙個整數,表示答案

例1:輸入

3 2 1

3 3 3

輸出: 3

5. 小明在抖音裡關注了n個主播,每個主播每天的開播時間是固定的,分別在s時刻開始開播,t時間結束。小明無法同時**兩個主播的直播。一天被分成了m個時間單位。請問小明每天最多能完整**多少場直播?

輸入描述:

第一行乙個整數,代表n

第二行乙個整數,代表m

第三行空格間隔的n*2個整數,代表s,t

輸出描述:

一行乙個整數,表示答案

例1:輸入

0 3 3 7 7 0

輸出:3

例2: 輸入

0 5 2 7 6 9

輸出:2

備註:資料範圍1<=n<=10^5

2<=m<=10^6

0<=s(i),t(i)s(i)>t(i)代表時間跨天,但直播時長不會超過一天

本題和尋找圖中路徑的思想一致。**如下:

#include#include#includeusing namespace std;

bool rfind(int s, int des, int n, int& length, int* reach, int* path, vector>& red)

length--;

} }return false;

}int* findpath(int begin, int end, int n, vector>& red)

if (begin == end || rfind(begin, des, n, length, reach, path, red))

else

delete reach;

return path;

}int main()

bool isred = true;

int t = 0;

for (int i = 1; i <= n; i++)

else

} if (isred)

} cout << t << endl;

return 0;

}

位元組跳動2019校招前端筆試

題目描述 開心消消樂 給定乙個一維的正整數陣列,逐次選擇其中乙個數做消除,消除所獲得的分數為當前數字和左右相鄰數字的乘積 當左邊或者右邊沒有數字可以認為是1 e.g.輸入陣列 3,1,5,8 step1 消除1 獲得分數 15 3x1x5,陣列變為 3,5,8 step2 消除5,獲得分數 120 ...

位元組跳動2019校招前端筆試

題目描述 給一些駝峰式的變數名,將它們轉換為下劃線式的,要求及說明如下 輸入資料一定為合法的 駝峰式 變數名,變數名由若干單詞組成,單詞應當為首字母大寫,或全大寫,或全小寫。如 variable onevariable onehttprequest 如 variable one variable o...

位元組跳動校招筆試題特徵提取

小明是一名演算法工程師,同時也是一名鏟屎官。乙個貓咪特徵是乙個兩維的 vectorc x,y 如果x1 x2x1 x2並且y1 y2y1 y2,那麼這倆是同乙個特徵。因此,如果貓咪特徵連續一致,可以認為貓咪在運動。也就是說,如果特徵 a,b 在持續幀裡出現,那麼它將構成特徵運動。比如,特徵 a,b ...