華為面試題 最高分是多少

2021-07-30 15:29:13 字數 1840 閱讀 2003

老師想知道從某某同學當中,分數最高的是多少,現在請你程式設計模擬老師的詢問。當然,老師有時候需要更新某位同學的成績.

輸入描述:

輸入包括多組測試資料。

每組輸入第一行是兩個正整數n和m(0 < n <= 30000,0 < m < 5000),分別代表學生的數目和操作的數目。

學生id編號從1編到n。

第二行包含n個整數,代表這n個學生的初始成績,其中第i個數代表id為i的學生的成績

接下來又m行,每一行有乙個字元c(只取『q』或『u』),和兩個正整數a,b,當c為』q』的時候, 表示這是一條詢問操作,他詢問id從a到b(包括a,b)的學生當中,成績最高的是多少

當c為『u』的時候,表示這是一條更新操作,要求把id為a的學生的成績更改為b。

輸出描述:

對於每一次詢問操作,在一行裡面輸出最高成績.

輸入例子:

5 7

1 2 3 4 5

q 1 5

u 3 6

q 3 4

q 4 5

u 4 5

u 2 9

q 1 5

輸出例子:

565

9

題目分為兩種操作:查詢和更新,對於每乙個操作,分別編寫函式進行封裝。更新操作對應陣列操作,查詢對應陣列查詢。

void findmaximungrades(int n, int m, char operation, int operatestudentgrade[2])

if ('u' == operation[i])

}}void queryoperation(int a, int b)

}cout << maxgrade << endl;

}void updateoperation(int a, int b)

//

// main.cpp

// findmaximungrades

//// created by jiajie zhuo on 2017/7/2.

//#include #include #include #include using namespace std;

void findmaximungrades(int n, int m, char operation, int operatestudentgrade[2]);

void queryoperation(int a, int b);

void updateoperation(int a, int b);

vectorgrades;

int main(int argc, const char * argv)

char operation[m];

int operatestudentgrade[m][2];

cout << "please enter the query operatioins or update operations:";

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

cout << "the results of operations are follows:" << endl;

findmaximungrades(n, m, operation, operatestudentgrade);

return 0;

}

用陣列將查詢和更新操作儲存起來,分別進行操作,利用函式的封裝行就能很好的剝離問題。

最高分是多少? 華為

程式設計題 最高分是多少 時間限制 1秒 空間限制 65536k 老師想知道從某某同學當中,分數最高的是多少,現在請你程式設計模擬老師的詢問。當然,老師有時候需要更新某位同學的成績.輸入描述 輸入包括多組測試資料。每組輸入第一行是兩個正整數n和m 0 n 30000,0 m 5000 分別代表學生的...

華為上機筆試題 最高分是多少

1 最高分是多少 老師想知道從某某同學當中,分數最高的是多少,現在請你程式設計模擬老師的詢問。當然,老師有時候需要更新某位同學的成績.輸入描述 輸入包括多組測試資料。每組輸入第一行是兩個正整數n和 m 0 n 30000,0 m 5000 分別代表學生的數目和操作的數目。學生id 編號從1編到n 第...

最高分是多少?

時間限制 1秒 空間限制 65536k 老師想知道從某某同學當中,分數最高的是多少,現在請你程式設計模擬老師的詢問。當然,老師有時候需要更新某位同學的成績。輸入描述 1 輸入包括多組測試資料。2.每組輸入第一行是兩個正整數n和m 0 n 30000,0 m 5000 分別代表學生的數目和操作的數目。...