2022.06.26 华为od机试真题

2023-11-12

1.最长连续子串

 有N个正整数组成的一个序列
 给定一个整数sum
 求长度最长的的连续子序列使他们的和等于sum
 返回次子序列的长度
 如果没有满足要求的序列 返回-1
 案例1:
 输入
 1,2,3,4,2
 6
 输出
 3
 解析:1,2,3和4,2两个序列均能满足要求
 所以最长的连续序列为1,2,3 因此结果为3

 示例2:
 输入
 1,2,3,4,2
 20
 输出
 -1
 解释:没有满足要求的子序列,返回-1

 备注: 输入序列仅由数字和英文逗号构成
 数字之间采用英文逗号分割
 序列长度   1<=N<=200
 输入序列不考虑异常情况
 由题目保证输入序列满足要求
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

/**
 * @author CZM
 * @date 2022 06 26 20:12
 */
// 最长连续子串
public class test02 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String line = sc.nextLine();
        int num = Integer.parseInt(sc.nextLine());
        String[] split = line.split(",");
        List<Integer> list = new ArrayList<>();
        for (int i = 0; i < split.length; i++){
            list.add(Integer.parseInt(split[i]));
        }
        int count = -1;
        for (int i = 0; i < list.size(); i++){
            if (list.get(i) == num) {
                count = Math.max(1,count);
            } else if (list.get(i) < num) {
                int sum = 0;
                int start = i;
                while (start < list.size()){
                    sum += list.get(start);
                    if (sum == num) {
                        count = Math.max(count, start+1-i);
                        break;
                    } else if (sum > num){
                        break;
                    } else {
                        start++;
                    }
                }
            }
        }
        System.out.println(count);
    }
}
 题目描述
 输入N个互不相同的二维整数坐标,求这N个坐标可以构成的正方形数量。[内积为零的的两个向量垂直]
 输入描述
 第一行输入为N,N代表坐标数量,N为正整数。N <= 100
 之后的 K 行输入为坐标x y以空格分隔,x,y为整数,-10<=x, y<=10
 输出描述
 输出可以构成的正方形数量。

 示例 1
 输入
 3
 1 3
 2 4
 3 1
 输出
 0 (3个点不足以构成正方形)
 
 示例 2 
 输入
 4
 0 0
 1 2
 3 1
 2 -1
 输出
 1

2.正方形数量


import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

/**
 * @author CZM
 * @date 2022 06 26 20:12
 */
// 正方形数量
public class test03 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int num = Integer.parseInt(sc.nextLine());
        List<String> list = new ArrayList<>();
        for (int i = 0; i < num; i++) {
            list.add(sc.nextLine());
        }
        int count = 0;
        if (num <= 3) {
            System.out.println(count);
            return;
        }
        for (int i = 0; i<list.size(); i++) {
            String str = list.get(i);
            String[] split = str.split(" ");
            int x1 = Integer.parseInt(split[0]);
            int y1 = Integer.parseInt(split[1]);
            for (int j = i + 1; j<list.size(); j++) {
                String str1 = list.get(j);
                String[] split1 = str1.split(" ");
                int x2 = Integer.parseInt(split1[0]);
                int y2 = Integer.parseInt(split1[1]);

                int x31 = x1 - (y1-y2);
                int y31 = y1 + (x1-x2);
                int x41 = x2 - (y1-y2);
                int y41 = y2 + (x1-x2);

                int x32 = x1 + (y1-y2);
                int y32 = y1 - (x1-x2);
                int x42 = x2 + (y1-y2);
                int y42 = y2 - (x1-x2);

                if (list.contains(x31 + " " + y31) && list.contains(x41 + " " + y41)) {
                    count++;
                }
                if (list.contains(x32 + " " + y32) && list.contains(x42 + " " + y42)) {
                    count++;
                }
            }
        }
        System.out.println(count / 4);
    }
}

3.二叉树层次遍历(不会做)

 题目描述
 有一棵二叉树,每个节点由一个大写字母标识(最多26个节点)。
 现有两组字母,分别表示后序遍历(父节点->左孩子->右孩子)
 和中序遍历(左孩子->父节点->右孩子)的结果,
 请你输出层次遍历(左孩子->右孩子->父节点)的结果
 
 输入描述
 输入1行,分别表示后序遍历(父节点->左孩子->右孩子)和中序遍历(左孩子->父节点->右孩子)的结果。
 
 输出描述
 输出层次遍历(左孩子->右孩子->父节点)的结果。

 示例 
 输入
 CBEFDA CBAEDF

 输出
 ABDCEF
 说明:(如下图)

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

2022.06.26 华为od机试真题 的相关文章

随机推荐

  • 网络安全基础要点知识介绍

    本文章只为了方便查阅 文章目录 网络安全 网络安全问题概述 两类密码体制 数字签名 鉴别 报文鉴别 实体鉴别 密钥分配 对称密钥的分配 公钥的分配 互联网使用的安全协议 运输层安全协议 参考文献 网络安全 网络安全问题概述 计算机网络的通信
  • 真题详解(数字签名算法)-软件设计(七十八)

    真题详解 有限自动机 软件设计 七十七 https blog csdn net ke1ying article details 130748759 可用于数字签名算法的是 答案 非对称RSA 移植性 易安装 易替换 适应性 UML状态图转换
  • P16-Login.vue内容

  • Java 中时间类 Calendar、Date、SimpleDateFormat 的相关详解

    参考Java 1 8 文章目录 java util Date methods java util Calendar methods Calendar 方法举例 java text SimpleDateFormat 符号对应的意思 构造方法
  • vue实现一行多列的表单校验

    背景 在开发过程中 经常会遇到一行多列的情况 并且需要做表单校验 element文档给的required案列是单列输入框 使用场景不符合动态一行多列验证 第一种方式 一个表单 循环多行 代码
  • redis模糊批量清除key

    文章目录 一 命令行删除 二 golang代码删除 有时候需要从 Redis 实例成千上万的 key 中找出特定前缀的 key 列表来手动处理数据 可能是修改它的值 也可能是删除 key 这里就有一个问题 如何从海量的 key 中找出满足特
  • 三维偏序(陌上花开)

    题目描述 题解 这是cdq分治模板题 前置 cdq分治 好像是一位大佬搞出来的神奇分治 可以直接干掉一层树形结构 其实实现还是比较简单的 对于区间 l r 我们先处理 l mid 和 mid 1 r 然后处理左右区间之间产生的影响 具体顺序
  • 华为OD机试 - 战场索敌(Java & JS & Python)

    题目描述 有一个大小是N M的战场地图 被墙壁 分隔成大小不同的区域 上下左右四个方向相邻的空地 属于同一个区域 只有空地上可能存在敌人 E 请求出地图上总共有多少区域里的敌人数小于K 输入描述 第一行输入为N M K N表示地图的行数 M
  • 成功解决 -- An I/O error occured while sending data to the backend.

    文章目录 问题描述 历史经验 排查步骤 解决方法 问题描述 Oracle通过kettle工具同步数据到Gauss报IO错误 历史经验 应用侧 获取连接后未及时关闭 DriverManager gerConnection后未调用con clo
  • 如何查看list的维度

    在写神经网络代码过程中 总是有很多的矩阵变换 有很多时候矩阵是有list构成的 然而list又没有shape方法 无法直接查看list的维度 通过查找资料 我看到可以使用将其转化为数组的形式查看维度 代码如下 import numpy as
  • Tkinter 控件详细介绍

    Tkinter支持15个核心的窗口部件 这个15个核心窗口部件类列表如下 窗口部件及说明 Button 一个简单的按钮 用来执行一个命令或别的操作 Canvas 组织图形 这个部件可以用来绘制图表和图 创建图形编辑器 实现定制窗口部件 Ch
  • 远程桌面端口默认是什么?修改远程桌面端口号方法

    远程桌面连接是我们控制远程电脑的高效方法 远程桌面连接也是需要使用端口的 下面我们一起来学习一下远程桌面连接默认的端口号及服务器端远程端口号的修改方法 推荐 服务器远程桌面端口修改工具 远程桌面端口默认是什么 远程桌面连接的默认端口号是 3
  • C语言实现简易扫雷小游戏

    game h include
  • Linux下编译CEF源码及交叉编译

    Linux下编译CEF chromium源码及交叉编译 官方编译文档 https bitbucket org chromiumembedded cef wiki MasterBuildQuickStart markdown header l
  • 继承 c++

    1 类的继承概念的解释 2 函数隐藏 3 赋值兼容 4 多种继承方式 5 函数的使用 构造函数 析构函数 拷贝构造函数 赋值运算符重载函数 1 类的继承概念解释 假定有一个类A 要创建一个新类B 它是类A的一个特殊版本 类A就称为基类 类B
  • java前台请求quartz,spring整合java quartz实现动态定时任务的前台网页配置与管理

    实例简介 在实际项目应用中经常会用到定时任务 可以通过quartz和spring的简单配置即可完成 但如果要改变任务的执行时间 频率 废弃任务等就需要改变配置甚至代码需要重启服务器 这里介绍一下如何通过quartz与spring的组合实现动
  • 目标主机SSH服务存在RC4、CBC或None弱加密算法 修复方法

    近期进行服务器漏扫时发现了 目标主机SSH服务存在RC4 CBC或None弱加密算法 的漏洞 记录一下修复方法 如下 1 修改 ssh 配置文件 vim etc ssh sshd config 或 vi etc ssh sshd confi
  • java打印出1~100之内的所有素数

    素数 质数 是指在大于1的整数之中只能被1和它自身整除的数就称之为素数 例如 2 1 2 2 2 1 2就是一个素数 以此类推3 5 7都是素数 代码 public class Main public static void main St
  • 主板电源开关接口图解_组装电脑时主板跳线如何接?DIY装机主板接线教程

    如今装机不再像以前那么神秘 不用再去电脑城问东问西 只要上天猫或京东等网上商城即可放心买到各种电脑配件 那么 自己组装电脑最难的是什么 CPU 散热器 内存 显卡安装都很简单 很多小伙伴自己组装电脑的难点主要在于主板跳线或者说机箱接线 今天
  • 2022.06.26 华为od机试真题

    华为od机试真题 1 最长连续子串 2 正方形数量 3 二叉树层次遍历 不会做 1 最长连续子串 有N个正整数组成的一个序列 给定一个整数sum 求长度最长的的连续子序列使他们的和等于sum 返回次子序列的长度 如果没有满足要求的序列 返回