当前位置: 首页 > news >正文

华为9.20笔试 复现

第一题

丢失报文的位置

思路:从数组最小索引开始遍历

#include <iostream>
#include <vector>
using namespace std;
// 求最小索引值
int getMinIdx(vector<int> &arr)
{int minidx = 0;for (int i = 0; i < arr.size(); i++){if (arr[i] < arr[minidx]){minidx = i;}}return minidx;
}
int main()
{int n;cin >> n;vector<int> nums(n);for (int i = 0; i < n; i++){cin >> nums[i];}int sn;cin >> sn;int p = getMinIdx(nums);cout << p << endl;// 初始化左右边界int l = -1, r = -1;for (int i = 0; i < n; i++){// 模n取位置索引int t = (p + i) % n;// 比较snif (nums[t] == sn){// 更新一次左边界if (l == -1){l = t;}// 不断更新右边界r = t;}}// 输出cout << l << " " << r;return 0;
}

在这里插入图片描述

第二题

快速传球

思路:bfs+队列

#include <iostream>
#include <vector>
#include <queue>
using namespace std;int main()
{// bfsint m, n;cin >> m >> n;vector<vector<int>> q = vector<vector<int>>(m, vector<int>(n));// 记录数组每个节点最短距离// 初始化为-1vector<vector<int>> d = vector<vector<int>>(m, vector<int>(n, -1));for (int i = 0; i < m; i++){for (int j = 0; j < n; j++){cin >> q[i][j];}}// 方向数组int pos[4][2] = {{0, 1}, {1, 0}, {0, -1}, {-1, 0}};// 队列遍历每个点queue<pair<int, int>> que;// 第一列男同学入队for (int i = 0; i < m; i++){if (q[i][0] == 1){que.push(pair<int, int>(i, 0));// 路径数组更新d[i][0] = 0;}}// 遍历队列while (!que.empty()){// 出队 取点pair<int, int> t = que.front();que.pop();// 取坐标int x = t.first;int y = t.second;// 遍历四个方向 取下一个坐标for (int i = 0; i < 4; i++){int nx = x + pos[i][0];int ny = y + pos[i][1];// 过滤下一个点if (nx < 0 || ny < 1 || nx > m - 1 || ny > n - 1 || d[nx][ny] != -1 || q[nx][ny] == 0)continue;// 更新节点距离d[nx][ny] = d[x][y] + 1;// 继续入队que.push(pair<int, int>(nx, ny));}}// 初始化最短路径int mind = INT32_MAX;// 遍历每行 求最后一列最短距离for (int i = 0; i < m; i++){// 如果右下角是男同学 可以传到if (q[i][n - 1] == 1){mind = min(mind, d[i][n - 1]);}}// 判断是否有最短距离if (mind == INT32_MAX)cout << -1;// 返回最短路径距离cout << mind;return 0;
}

在这里插入图片描述

第三题

简易计算器

思路:真大模拟,代码量巨大,还是没有写全,AC不了,而且c++我不会处理输入输出,用了Golang。。。

package mainimport ("bufio""fmt""os""regexp""strconv""strings"
)type inp struct {v       stringname    stringequal   stringexpress []string
}const (SYNTAX_ERROR = "<syntax-error>" // 语法错误UNDEFINED    = "<undefined>"    // 未定义UNDERFLOW    = "<underflow>"    // 下溢OVERFLOW     = "<overflow>"     // 溢出
)// 未定义错误
func isUndeined(m map[string]*inp, name string) bool {if _, ok := m[name]; ok {return false}return true
}// 是否有语法错误
func isSynErr(ex []string, name string) bool {// 表达式错误if len(ex)%2 == 0 {return true}// 正则match, _ := regexp.MatchString("^[a-zA-Z]", name)// _开头或者字母开头if strings.HasPrefix(name, "_") || match {return false}return true
}// 输出结果
func getRes(m map[string]*inp, ex []string) any {e1, err := strconv.Atoi(ex[0])if err != nil {st := m[ex[0]]e1, _ = strconv.Atoi(st.express[0])}// 初始化结果var ret int = e1// 标记符号 用于计算var sign stringfor k, v := range ex {if k > 0 {if v == "+" || v == "-" || v == "*" || v == "/" {sign = vcontinue}// 从左到右一次计算if sign == "+" {e, err := strconv.Atoi(v)if err != nil {st := m[v]e, _ = strconv.Atoi(st.express[0])}ret += e} else if sign == "-" {e, err := strconv.Atoi(v)if err != nil {st := m[v]e, _ = strconv.Atoi(st.express[0])}ret -= e} else if sign == "*" {e, err := strconv.Atoi(v)if err != nil {st := m[v]e, _ = strconv.Atoi(st.express[0])}ret *= e} else if sign == "/" {e, err := strconv.Atoi(v)if err != nil {st := m[v]e, _ = strconv.Atoi(st.express[0])}ret /= e}}}// 是否上溢if ret > 2147483647 {return OVERFLOW}// 是否下溢if ret < -2147483647 {return UNDERFLOW}// 返回return ret
}// 语法错误
func main() {// Golang输入// fmt.Scan(&v, &name, &equal, &num)// map表记录m := make(map[string]*inp, 24)n := 0for {// var (// 	v       string// 	name    string// 	equal   string// 	express []string// )// // 输入操作 换行结束// fmt.Scanln(&v, &name, &equal, &express)n++scan := bufio.NewReader(os.Stdin)// 读取一行数据line, _, _ := scan.ReadLine()// fmt.Println(string(line))data := string(line)lis := strings.Split(data, " ")var recv [30]stringfor k, v := range lis {recv[k] = v}na := recv[1]val := recv[0]eq := recv[2]var ex []stringfor _, v := range recv[3:] {if v != "" {ex = append(ex, v)}}m[recv[1]] = &inp{v:       val,name:    na,equal:   eq,express: ex,}// 前缀是否以out开头if strings.HasPrefix(val, "out") {// 截取左边索引l := strings.Index(val, "(")// 截取值va := val[l+1 : len(val)-1]st := m[va]// fmt.Println(val)// 测试// fmt.Printf("%+v\n", m[val])// out := m[val]if isUndeined(m, va) {fmt.Println(UNDEFINED)} else if isSynErr(st.express, st.name) {fmt.Println(SYNTAX_ERROR)} else {fmt.Println(getRes(m, st.express))}}// 控制最多24行if n > 24 {break}}
}

在这里插入图片描述

相关文章:

华为9.20笔试 复现

第一题 丢失报文的位置 思路&#xff1a;从数组最小索引开始遍历 #include <iostream> #include <vector> using namespace std; // 求最小索引值 int getMinIdx(vector<int> &arr) {int minidx 0;for (int i 0; i < arr.size(); i){if (arr[i] …...

二十五、【色调调整基础】

文章目录 1、亮度/对比度a、亮度b、对比度 2、曝光度3、阈值4、色阶5、反相6、黑白7、渐变映射 1、亮度/对比度 a、亮度 亮度是指画面的明亮程度 b、对比度 对比度指的是一幅图像中&#xff0c;明暗区域最亮和最暗之间不同亮度层级的测量&#xff0c;如下图所示&#xff0…...

Android Studio SDK manager加载packages不全

打开Android Studio里的SDK manager&#xff0c;发现除了已安装的&#xff0c;其他的都不显示。 解决方法&#xff1a; 设置代理&#xff1a; 方便复制> http://mirrors.neusoft.edu.cn/ 重启Android Studio...

[esp32-wroom]基础开发

1、点亮LED灯 int led_pin2; void setup() {// put your setup code here, to run once:pinMode(led_pin,OUTPUT);}void loop() {// put your main code here, to run repeatedly:digitalWrite(led_pin,HIGH);delay(1000);digitalWrite(led_pin,LOW);delay(1000); } 2、LED流…...

利用Docker 实现 MiniOB环境搭建

官方文档有,但是感觉写的跟shift一样(或者是我的阅读理解跟shift一样 下面是自己的理解 一.下载docker 这个去官网下载安装,没什么说的 Docker: Accelerated Container Application Development 二.用docker下载MiniOB环境 1.打开powershell ( win r ,然后输入powershell…...

【DB2】—— 数据库表查询一直查不出来数据

问题描述 近日&#xff0c;数据库的测试环境中有一个打印日志表&#xff0c;一共有将近50w的数据&#xff0c;Java程序在查询的时候一直超时。 在DBvisualizer中查询数据无论是使用select * 还是 select count(*)查询的时候都是一直在执行&#xff0c;就是查询不到结果。 排查…...

【教程】使用vuepress构建静态文档网站,并部署到github上

官网 快速上手 | VuePress (vuejs.org) 构建项目 我们跟着官网的教程先构建一个demo 这里我把 vuepress-starter 这个项目名称换成了 howtolive 创建并进入一个新目录 mkdir howtolive && cd howtolive使用你喜欢的包管理器进行初始化 yarn init 这里的问题可以一…...

python 机器视觉 车牌识别 - opencv 深度学习 机器学习 计算机竞赛

1 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 基于python 机器视觉 的车牌识别系统 &#x1f947;学长这里给一个题目综合评分(每项满分5分) 难度系数&#xff1a;3分工作量&#xff1a;3分创新点&#xff1a;3分 &#x1f9ff; 更多资…...

Hadoop3教程(十二):MapReduce中Shuffle机制的概述

文章目录 &#xff08;95&#xff09; Shuffle机制什么是shuffle&#xff1f;Map阶段Reduce阶段 参考文献 &#xff08;95&#xff09; Shuffle机制 面试的重点 什么是shuffle&#xff1f; Map方法之后&#xff0c;Reduce方法之前的这段数据处理过程&#xff0c;就叫做shuff…...

MySQL为什么用b+树

索引是一种数据结构&#xff0c;用于帮助我们在大量数据中快速定位到我们想要查找的数据。 索引最形象的比喻就是图书的目录了。注意这里的大量&#xff0c;数据量大了索引才显得有意义&#xff0c;如果我想要在[1,2,3,4]中找到4这个数据&#xff0c;直接对全数据检索也很快&am…...

浅谈机器学习中的概率模型

浅谈机器学习中的概率模型 其实&#xff0c;当牵扯到概率的时候&#xff0c;一切问题都会变的及其复杂&#xff0c;比如我们监督学习任务中&#xff0c;对于一个分类任务&#xff0c;我们经常是在解决这样一个问题&#xff0c;比如对于一个n维的样本 X [ x 1 , x 2 , . . . .…...

MySQL 函数 索引 事务 管理

目录 一. 字符串相关的函数 二.数学相关函数 ​编辑 三.时间日期相关函数 date.sql 四.流程控制函数 centrol.sql 分页查询 使用分组函数和分组字句 group by 数据分组的总结 多表查询 自连接 子查询 subquery.sql 五.表的复制 六.合并查询 七.表的外连接 …...

Flink如何基于事件时间消费分区数比算子并行度大的kafka主题

背景 使用flink消费kafka的主题的情况我们经常遇到&#xff0c;通常我们都是不需要感知数据源算子的并行度和kafka主题的并行度之间的关系的&#xff0c;但是其实在kafka的主题分区数大于数据源算子的并行度时&#xff0c;是有一些注意事项的&#xff0c;本文就来讲解下这些注…...

总结:JavaEE的Servlet中HttpServletRequest请求对象调用各种API方法结果示例

总结&#xff1a;JavaEE的Servlet中HttpServletRequest请求对象调用各种API方法结果示例 一方法调用顺序是按照英文字母顺序从A-Z二该示例可以用作servlet中request的API参考&#xff0c;从而知道该如何获取哪些路径参数等等三Servlet的API版本5.0.0、JSP的API版本&#xff1a;…...

ChatGPT AIGC 完成Excel跨多表查找操作vlookup+indirect

VLOOKUP和INDIRECT的组合在Excel中用于跨表查询,其中VLOOKUP函数用于在另一张表中查找数据,INDIRECT函数则用于根据文本字符串引用不同的工作表。具体操作如下: 1.假设在工作表1中,A列有你要查找的值,B列是你希望查询的工作表名称。 2.在工作表1的C列输入以下公式:=VLO…...

Linux系统conda虚拟环境离线迁移移植

本人创建的conda虚拟环境名为yys&#xff08;每个人的虚拟环境名不一样&#xff0c;替换下就行&#xff09; 以下为迁移步骤&#xff1a; 1.安装打包工具将虚拟环境打包&#xff1a; conda install conda-pack conda pack -n yys -o yys.tar.gz 2.将yys.tar.gz上传到服务器&…...

Vue16 绑定css样式 style样式

绑定样式&#xff1a; 1. class样式写法:class"xxx" xxx可以是字符串、对象、数组。字符串写法适用于&#xff1a;类名不确定&#xff0c;要动态获取。对象写法适用于&#xff1a;要绑定多个样式&#xff0c;个数不确定&#xff0c;名字也不确定。数组写法适用于&…...

[Spring] SpringMVC 简介(三)

目录 九、SpringMVC 中的 AJAX 请求 1、简单示例 2、RequestBody&#xff08;重点关注“赋值形式”&#xff09; 3、ResponseBody&#xff08;经常用&#xff09; 4、为什么不用手动接收 JSON 字符串、转换 JSON 字符串 5、RestController 十、文件上传与下载 1、Respo…...

kettle应用-从数据库抽取数据到excel

本文介绍使用kettle从postgresql数据库中抽取数据到excel中。 首先&#xff0c;启动kettle 如果kettle部署在windows系统&#xff0c;双击运行spoon.bat或者在命令行运行spoon.bat 如果kettle部署在linux系统&#xff0c;需要执行如下命令启动 chmod x spoon.sh nohup ./sp…...

Git Commit Message规范

概述 Git commit message规范是一种良好的实践&#xff0c;可以帮助开发团队更好地理解和维护代码库的历史记录。它可以提高代码质量、可读性和可维护性。下面是一种常见的Git commit message规范&#xff0c;通常被称为"Conventional Commits"规范&#xff1a; 一…...

MySQL 隔离级别:脏读、幻读及不可重复读的原理与示例

一、MySQL 隔离级别 MySQL 提供了四种隔离级别,用于控制事务之间的并发访问以及数据的可见性,不同隔离级别对脏读、幻读、不可重复读这几种并发数据问题有着不同的处理方式,具体如下: 隔离级别脏读不可重复读幻读性能特点及锁机制读未提交(READ UNCOMMITTED)允许出现允许…...

Cesium1.95中高性能加载1500个点

一、基本方式&#xff1a; 图标使用.png比.svg性能要好 <template><div id"cesiumContainer"></div><div class"toolbar"><button id"resetButton">重新生成点</button><span id"countDisplay&qu…...

uni-app学习笔记二十二---使用vite.config.js全局导入常用依赖

在前面的练习中&#xff0c;每个页面需要使用ref&#xff0c;onShow等生命周期钩子函数时都需要像下面这样导入 import {onMounted, ref} from "vue" 如果不想每个页面都导入&#xff0c;需要使用node.js命令npm安装unplugin-auto-import npm install unplugin-au…...

Golang dig框架与GraphQL的完美结合

将 Go 的 Dig 依赖注入框架与 GraphQL 结合使用&#xff0c;可以显著提升应用程序的可维护性、可测试性以及灵活性。 Dig 是一个强大的依赖注入容器&#xff0c;能够帮助开发者更好地管理复杂的依赖关系&#xff0c;而 GraphQL 则是一种用于 API 的查询语言&#xff0c;能够提…...

五年级数学知识边界总结思考-下册

目录 一、背景二、过程1.观察物体小学五年级下册“观察物体”知识点详解&#xff1a;由来、作用与意义**一、知识点核心内容****二、知识点的由来&#xff1a;从生活实践到数学抽象****三、知识的作用&#xff1a;解决实际问题的工具****四、学习的意义&#xff1a;培养核心素养…...

Nuxt.js 中的路由配置详解

Nuxt.js 通过其内置的路由系统简化了应用的路由配置&#xff0c;使得开发者可以轻松地管理页面导航和 URL 结构。路由配置主要涉及页面组件的组织、动态路由的设置以及路由元信息的配置。 自动路由生成 Nuxt.js 会根据 pages 目录下的文件结构自动生成路由配置。每个文件都会对…...

spring:实例工厂方法获取bean

spring处理使用静态工厂方法获取bean实例&#xff0c;也可以通过实例工厂方法获取bean实例。 实例工厂方法步骤如下&#xff1a; 定义实例工厂类&#xff08;Java代码&#xff09;&#xff0c;定义实例工厂&#xff08;xml&#xff09;&#xff0c;定义调用实例工厂&#xff…...

高防服务器能够抵御哪些网络攻击呢?

高防服务器作为一种有着高度防御能力的服务器&#xff0c;可以帮助网站应对分布式拒绝服务攻击&#xff0c;有效识别和清理一些恶意的网络流量&#xff0c;为用户提供安全且稳定的网络环境&#xff0c;那么&#xff0c;高防服务器一般都可以抵御哪些网络攻击呢&#xff1f;下面…...

Android Bitmap治理全解析:从加载优化到泄漏防控的全生命周期管理

引言 Bitmap&#xff08;位图&#xff09;是Android应用内存占用的“头号杀手”。一张1080P&#xff08;1920x1080&#xff09;的图片以ARGB_8888格式加载时&#xff0c;内存占用高达8MB&#xff08;192010804字节&#xff09;。据统计&#xff0c;超过60%的应用OOM崩溃与Bitm…...

Maven 概述、安装、配置、仓库、私服详解

目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...