zoukankan      html  css  js  c++  java
  • 【华为机试】找最高分(通过此题熟悉牛客网Node输入输出)

    来源:牛客网

    老师想知道从某某同学当中,分数最高的是多少,现在请你编程模拟老师的询问。当然,老师有时候需要更新某位同学的成绩.
    输入描述:

    输入包括多组测试数据。
    每组输入第一行是两个正整数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。

    输出描述:

    对于每一次询问操作,在一行里面输出最高成绩.

    var readline = require('readline');
    const rl = readline.createInterface({
        input: process.stdin,
        output: process.stdout,
        terminal: false
    });
       
    var n,
        m = 0;
    var sc = [];
       
    var cur_line = 0;
    rl.on('line', function(line) {
        var tokens = line.split(' ');
        cur_line += 1;
        if (cur_line === 1) {
            n = parseInt(tokens[0]);
            m = parseInt(tokens[1]);
        } else if (cur_line === 2) {
            for (var i = 1; i <= n; ++i) {
                sc[i] = parseInt(tokens[i - 1]);
            }
        } else {
            var c = tokens[0];
            var a = parseInt(tokens[1]);
            var b = parseInt(tokens[2]);
            if (c === 'Q') {
                var max = 0;
                for (var i = Math.min(a, b); i <= Math.max(a, b); ++i) {
                    max = max < sc[i] ? sc[i] : max;
                }
                console.log(max);
            } else if (c === 'U') {
                sc[a] = b;
            }
            if (cur_line >= m + 2) {
                n = 0;
                m = 0;
                sc.splice(0, sc.length);
                cur_line = 0;
            }
        }
    });
  • 相关阅读:
    第六周作业
    第四周作业(登录验证码)
    JSP第二次作业
    JSP第一次作业求1-100间的素数
    软件测试课堂作业
    安卓作业(购物商城)
    安卓作业
    Android 简易计算器
    jsp第七次作业
    JSP第六次作业
  • 原文地址:https://www.cnblogs.com/yujihang/p/7481875.html
Copyright © 2011-2022 走看看