機試題 最高分是多少 鍊錶

2021-07-04 19:49:06 字數 1807 閱讀 2361

題目(摘自牛客網華為機試):

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

輸入描述:

輸入包括多組測試資料。

每組輸入第一行是兩個正整數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

實現程式:

1.鍊錶(稍複雜,不推薦)

#include #include typedef struct node

node;

int getmax(node *&head,int a,int b);

int updatescore(node *&head,int a,int b);

//獲得最大值

int getmax(node *&head,int a,int b)

max=p->data;

for (i=0;inext;

if (p->data>max)

}return max;

} return -1;

}//更新分數

int updatescore(node *&head,int a,int b)

if (i>a+1||!p)

p->data=b;

return 1;

}int main()

pcur->next=null;

for(i=0;ib)

printf("%d\n",getmax(head,a,b));

break;

} break;

case 'u':

updatescore(head,a,b);

break;

default:

break;

} }

} return 0;

}

2. 使用陣列(推薦)

#include#include int getmax(int *arr,int a,int b)

return max;

}int update(int *arr,int a,int b)

int main()

printf("%d\n",getmax(p,a-1,b-1));

}if (ch=='u')

m--;

} delete p;

p=null; }

return 0;

}

最高分是多少?

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

最高分是多少(2016)

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

最高分是多少? 華為

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