位元組跳動2018校招測試開發方向(第一批)

2021-10-01 10:01:48 字數 2566 閱讀 5672

acm題集:

第一題

p為給定的二維平面整數點集。定義 p 中某點x,如果x滿足 p 中任意點都不在 x 的右上方區域內(橫縱座標都大於x),則稱其為「最大的」。求出所有「最大的」點的集合。(所有點的橫座標和縱座標都不重複, 座標軸範圍在[0, 1e9) 內)

如下圖:實心點為滿足條件的點的集合。請實現**找到集合 p 中的所有 」最大「 點的集合並輸出。

輸入描述:

第一行輸入點集的個數 n, 接下來 n 行,每行兩個數字代表點的 x 軸和 y 軸。

對於 50%的資料, 1 <= n <= 10000;

對於 100%的資料, 1 <= n <= 500000;

輸出描述:

輸出「最大的」 點集合, 按照 x 軸從小到大的方式輸出,每行兩個數字分別代表點的 x 軸和 y軸。

輸入例子1:

51 2

5 34 6

7 59 0

輸出例子1:

4 67 5

9 0

居然沒做出來~~~

按x軸從做到右排序, 當乙個點為最大點的時候, 它右邊的所有點的y值都比它小,

也就是它右邊的所有點的y值的最大值比它小,然後倒序列舉一下就可以了

#include

#define ll long long

#define fo(i,j,n) for(register int i=j; i<=n; ++i)

using

namespace std;

const

int n=

5e5+5;

int n;

struct node

else

if(x==p.x)

}return0;

}}p[n]

,ans[n]

;int

main()

sort

(p+1

,p+1

+n);

int maxy =-1

;int o=0;

for(

int i=n; i>=

1; i--)}

sort

(ans+

1, ans+

1+o);fo

(i,1

,o)return0;

}

第二題

[程式設計題]程式設計題2

時間限制:c/c++ 3秒,其他語言6秒

空間限制:c/c++ 128m,其他語言256m

給定乙個陣列序列, 需要求選出乙個區間, 使得該區間是所有區間中經過如下計算的值最大的乙個:

區間中的最小數 * 區間所有數的和最後程式輸出經過計算後的最大值即可,不需要輸出具體的區間。如給定序列 [6 2 1]則根據上述公式, 可得到所有可以選定各個區間的計算值:

[6] = 6 * 6 = 36;

[2] = 2 * 2 = 4;

[1] = 1 * 1 = 1;

[6,2] = 2 * 8 = 16;

[2,1] = 1 * 3 = 3;

[6, 2, 1] = 1 * 9 = 9;

從上述計算可見選定區間 [6] ,計算值為 36, 則程式輸出為 36。

區間內的所有數字都在[0, 100]的範圍內;

輸入描述:

第一行輸入陣列序列長度n,第二行輸入陣列序列。

對於 50%的資料, 1 <= n <= 10000;

對於 100%的資料, 1 <= n <= 500000;

輸出描述:

輸出陣列經過計算後的最大值。

輸入例子1:

36 2 1

輸出例子1:

36

在某場網路賽見過這道題~

求區間和乘區間最小值的最大值

使用單調遞增棧求出以某個點為最小值的左右區間的邊界

單調棧的作用

有限區間:有頭有尾的閉區間

求過去到當前有限區間的最大值:使用單調遞減棧(棧尾)

求過去到當前有限區間的最小值:使用單調遞增棧(棧尾)

#include

#define ll long long

#define fo(i,j,n) for(register int i=j; i<=n; ++i)

using

namespace std;

const

int n=

5e5+5;

ll n,a[n]

,sum[n]

,st[n]

,l[n]

,r[n]

;void

solve()

top =0;

for(

int i=n; i>=

1; i--

) ll mx =0;

fo(i,

1,n)

cout<}int

main()

題解 2018校招真題(位元組跳動 附加題)

二階魔方又叫小魔方,是2 2 2的立方形結構。每一面都有4個塊,共有24個塊。每次操作可以將任意一面逆時針或者順時針旋轉90 如將上面逆時針旋轉90 操作如下。nero在小魔方上做了一些改動,用數字替換每個塊上面的顏色,稱之為數字魔方。魔方上每一面的優美度就是這個面上4個數字的乘積,而魔方的總優美度...

位元組跳動測試開發4輪面試 位元組跳動大資料開發面試題

1.自我介紹 2.分別介紹下hadoop的幾個組成框架?3.hdfs如何進行寫操作的?4.詳細介紹下mapreduce的工作機制?我重點回答了切片原理和shuffle機制 5.mapreduce有哪些優化方法?6.redis熟不熟,介紹下它有幾種資料型別?我回答了8種,面試官說只有5種,後來在網上搜...

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

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