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

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

更改 [] equals int() pan 編程 log can body

最高分是多少 老師想知道從某某同學當中,分數最高的是多少,現在請你編程模擬老師的詢問。當然,老師有時候需要更新某位同學的成績.
輸入描述:
輸入包括多組測試數據。
每組輸入第一行是兩個正整數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

輸出例子:
5
6
5
9

 1 package olivegyr;
 2 
 3 import java.util.Scanner;
 4 
 5 public class Main{
 6     public static void main(String[] args) {
 7         Scanner s=new Scanner(System.in);
 8         while
(s.hasNext()){ 9 int n=s.nextInt(); 10 int m=s.nextInt(); 11 int []stu=new int[n]; 12 13 for (int i = 0; i < n; i++) { 14 stu[i]=s.nextInt(); 15 } 16 for (int i = 0; i < m; i++) { 17 String c=s.next();
18 int a=s.nextInt(); 19 int b=s.nextInt(); 20 21 result(stu,a,b,c); 22 } 23 } 24 } 25 26 public static void result(int[] stu, int a, int b, String c) { 27 int s,e; 28 if(c.equals("Q")){ 29 s=Math.min(a, b)-1; 30 e=Math.max(a, b); 31 int h=stu[s]; 32 for (int i = s+1; i < e; i++) { 33 if(stu[i]>h) 34 h=stu[i]; 35 } 36 }else{ 37 stu[a-1]=b; 38 } 39 40 } 41 42 }

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