华为[编程题]最高分是多少-牛客网

#include<iostream>
#include<vector>
using namespace std;

int main(){
    int n,m;
    while(cin>>n>>m){
        vector<int>stu(n);
    for(int i=0;i<n;i++){
        cin>>stu[i];
    }//输入初始成绩;
    
         char c;int a;int b;
        for(int j=0;j<m;j++){
            cin>>c>>a>>b;
            if(c=='Q'){
                if(a>b)swap(a,b);
            //调整q时的左右边界值,确保在合理范围内;
                int max=stu[a-1];//将范围内的第一个值作为初始max;
                for(int k=a;k<b;k++){
                if(max<stu[k]) {max=stu[k];}
                }
                cout<<max<<endl;//遍历范围[a,b]中的值,找出最大值;
            }
            if(c=='U'){stu[a-1]=b;}//覆盖
        }//操作数,即输出数;
    }
   return 0;
    
}

总结:其实本题目挺简单的,但是之前一直在LeetCode上解题,模式不太一样,牛客网什么都不给,让自己输入输出,所以会比较纠结对题目的理解这一块;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章