頭條實習招聘的一道機考題,分配獎品數

2021-09-13 09:25:19 字數 1156 閱讀 1987

題目如下,有n個人參加程式設計比賽,比賽結束後每個人都會得到乙個分數,現在所有人排成一圈(第1個與第n個相鄰)領取獎品,要求:

1.如果某個人分數比左右的人高,那麼獎品也要比左右的人多

2.每個人至少得到乙個獎品

問最少應該準備多少個獎品。

**輸入描述

第一行是整數n,表示n個例子

然後輸入第1個例子的人數,再輸入分數。。。

如 輸入22

1 24

1 2 3 3

則輸出3

8因為以上兩個例子分配的禮物數分別是

1 21 2 3 2

解析:題目的意思是如果某人分數比左面的人高,獎品必須比左面的人高,右面也如此(注意如果分數相等則不做要求)

**如下,可以從最後面的main出發往上找函式

#include#includeusing namespace std;

void compute(int** p, int* n, int a)

} while (count < n[m])

else if (p[m][(i + n[m]) % n[m]] > p[m][(i + n[m] - 1) % n[m]] && symbol[(i + n[m] - 1) % n[m]] == 1 && p[m][(i + n[m]) % n[m]] <= p[m][(i + n[m] + 1) % n[m]])

else if (p[m][(i + n[m]) % n[m]] > p[m][(i + n[m] + 1) % n[m]] && symbol[(i + n[m] + 1) % n[m]] == 1 && p[m][(i + n[m]) % n[m]] <= p[m][(i + n[m] - 1) % n[m]])

else

continue;}}

} for (int i = 0; i < n[m]; i++)

cout <> j;

if (j < 1)

return;

int **a = new int*[j];

int *p = new int[j];

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

} compute(a, p, j);

}int main()

華為的一道機考題,大端與小端

現定義一種字元編碼,其編碼格式如下 第乙個字元表示後續8個字元序 字元 0 表示小端,字元 1 表示大端 後續8個字元,每個字元代表乙個位元組 編碼解析之後字串採用大端模式 例如編碼組 012345678 解析之後的大端字串為 87654321 反過來了 編碼組 112345678 解析之後的大端字...

一道新奇的招聘題

我的老同學現在富得流油。他開創了乙個軟體公司,開發了一系列軟體,生意越做越大。今天他來到這個城市後馬上打 給我。是我啊!聽出來了嗎?是這樣的,我到這兒的大學招畢業生,要在這兒呆上五天,咱哥們趁這個時間好好聚一聚。我做東!既然他要做東,我理所當然順水推舟。人家是老闆,不吃白不吃!我來到他下榻的賓館,看...

關於js陣列的一道小考題

網上看到的一道關於js陣列的小考題,藉此學習練習一下,也是拿來作為部落格開篇之作吧!題目如下 給定乙個隨機數組,陣列可能包含陣列 也就是說陣列元素可能為陣列 要求用js實現乙個函式,返回該陣列中所有元素,重複的要求去掉。例如 陣列 2,3,4,6,3,8 12,10 返回結果為 2,3,4,6,8,...