华为真题 最高分是多少

import java.util.Scanner;

public class TopOfScore {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		while (sc.hasNext()) {
			int n = sc.nextInt();
			int m = sc.nextInt();
			int[] score = new int[n];
			String operation= null;
			int a = 0;
			int b = 0;
			
			for (int i = 0; i < n; i++) {
				score[i] = sc.nextInt();
			}
			sc.nextLine();
			for (int j = 0; j < m; j++) {
				String[] strs = sc.nextLine().split(" ");
				operation = strs[0];
				a = Integer.parseInt(strs[1])-1;
				b = Integer.parseInt(strs[2])-1;
				int max = 0;
				//Q操作和U操作是分开的不能一起判断a 和b的关系因为以下对换影响了U操作所以导致错误。
				/*if(a>b) {
					a =a^b;
					b =a^b;
					a = a^b;
				}*/
				if(operation.equals("Q")) {
					for(int k = Math.min(a, b);k<=Math.max(a, b);k++) {
						max = Math.max(max, score[k]);
					}
					System.out.println(max);
				}
				if(operation.equals("U")) {
					score[a] =b+1;
				}
			}
		}
	}

}

有两点需要注意。

1.query查询的时候有可能a 和b的大小关系会导致程序的错误。因为数组查询的时候一定是a<b的。

2.对换a 和b是针对query操作的如果在步骤之中没有区分query操作和update操作会直接导致运算结果的错误。

思考:

用Scanner类是一并输入保存为字符串类型然后利用split()函数进行分割是不是比一个一个输入更加高效率呢?

### 华为OD机试考试模式介绍 华为OD机试是一种在线编程测试,旨在评估应聘者的算法设计、数据结构理解和编程能力。该考试通常分为两个部分:选择编程题。选择主要考察计算机基础知识和技术概念的理解;而编程题目则侧重于实际编码能力和解决问的能力[^1]。 对于编程部分,考生会被要求在一个规定的时间内完成若干道不同难度级别的程序编写任务。这些目可能涉及但不限于字符串处理、数组操作、链表管理以及动态规划等问。为了确保公平性和真实性,整个过程会通过特定平台监控并记录所有提交的内容[^2]。 ### 备考建议 #### 提升基础技能 - **掌握核心知识点**:深入学习常用的数据结构(如栈、队列、树等),熟悉经典算法(排序、查找、图论等)。这有助于快速理解目背景并找到合适的解决方案。 - **练习历年真题**:利用公开资源反复演练以往出现过的典型问及其变种形式。这样不仅可以积累经验还能提高应对突发状况的信心水平[^3]。 ```python def reverse_string(s): return s[::-1] print(reverse_string("hello")) # 输出 "olleh" ``` #### 时间管理和模拟训练 - **合理分配时间**:针对不同类型的任务制定科学合理的答策略,在有限时间内争取获得最高分数。例如先做简单易得分的小再挑战复杂耗时的大。 - **参与模拟竞赛**:定期参加线上或线下的模拟比赛活动来检验自己的实力差距所在,并据此调整复习计划直至达到理想状态为止。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值