华为OD面试记录

The experience of applying for software test engineer(Dispatcher)

记录保存

招聘岗位: 测试工程师

Base:西安

华为面试流程如下:

流程名内容
机试三题,总分400分,最后一道题200分
人力资源面试询问私人问题,不谈薪资
一面技术面
二面技术面
主管问项目
提交文件背景调查

机试题:

  1. 字符串找到最小无重复子串(最大),输出其数量。
    经典题,面试题也出现过一次,由此可见这道题基本上算是必考范畴.

解法:

/*** @file GetMaxLengthOfSubstring.cpp* @author zhanggao* @brief 基于双指针的寻最大子串算法* @version 0.1* @date 2023-08-02* * @copyright Copyright (c) 2023* */
#include <iostream>// double ptr
using namespace std;
/*** @brief 判断子串是否包含重复值* * @param target 重复值* @param characterString 子串 * @param front 指向子串的头指针* @param tail 指向子串的尾指针* @return int 若不存在返回0,存在返回下标*/
int isInclude(const char &target, const char *characterString, const int &front,const int &tail);int main() {char *s; // inputint front = 0, tail = 0, maxLength = 0, length, temp;cin >> s; // index for the first and end// double ptr method, front for the 1st of substring, tail for the last offor (int index = 1; s[index] != '\0';index++) { // iterate all elements of the stringtemp = isInclude(s[index], s, front, tail);if (temp > 0) { // check if include the target(it)front = temp;  // add the index until *it is not in the substring;}tail++; // forward to behindlength = tail - front + 1; // get the current lengthmaxLength = length > maxLength? length: maxLength; // compare with the previous the maxlength}cout << maxLength << endl;return 0;
}int isInclude(const char &target, const char *characterString, const int &front,const int &tail) {for (int i = front; i <= tail; i++) { // check if is includeif (characterString[i] == target) {return i + 1;}}return 0;
}
  1. 括号对称,用栈方式进行解决
bool isSymmetric(string s) {char *stack = s.data();char a;int index = 0;for (int i = 0; i < s.length(); i++) {a = s[i];if (index > 0 && (stack[index - 1] + 1 == a || stack[index - 1] + 2 == a)) {stack[index - 1] = 0;index--;} else {stack[index] = a;index++;}}return stack[0] == 0;
}
  1. 给你一系列数值,依次构建成树,输入null的为叶节点。返回其树的最左数据节点和最右数据节点的距离(意为中间有多少个数据节点)

输入:root = [1,3,2,5,0,0,9,6,0,7]
输出:7
解释:宽度为 7 (6,null,null,null,null,null,7) 。

/*** @file distance_between_leftest_point_and_rightest_point.cpp* @author ZhangGao* @brief 用队列保存其状态即可* @version 0.1* @date 2023-08-03* * @copyright Copyright (c) 2023* */
#include <iostream>
#include <queue>
using namespace std;
int main() {int target;bool status = true;queue<int> statusQueue;cin >> target;statusQueue.push(target);while (cin >> target) {while (statusQueue.front() == 0) {statusQueue.push(0);statusQueue.push(0);statusQueue.pop();}statusQueue.push(target);status = !status;if (status) {statusQueue.pop();}}if(!status){statusQueue.pop();}cout << statusQueue.size();return 0;
}

面试题:

一面面试官询问项目问题:
Q:

项目中推算出眼睛度数的算法是什么?

A:

根据焦距进行倒数后推算出的,焦距可通过远点测距法来算出

Q:

项目的架构是什么?

A:

前端使用的是Vue框架(View Layer)进行开发,然后后端是由Nginx作为负载中间件(也可以称其为WEB服务器应用),Flask(WEB应用框架,Controller Layer),Redis作为缓存中间件(用于放进)

手撕算法题:

删除给出链表中的重复元素(链表中元素从小到大有序),使链表中的所有元素都只出现一次.例如:
给出的链表为1->1->1->2,返回1->2.
给出的链表为1->2->3->3,返回1->2->3.

进阶:空间复杂度O(1),时间复杂度 O(n)

/*** struct ListNode {*  int val;*  struct ListNode *next;*  ListNode(int x) : val(x), next(nullptr) {}* };*/
#include <cstdlib>
class Solution {
public:/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可*** @param head ListNode类* @return ListNode类*/ListNode* deleteDuplicates(ListNode* head) {// write code hereint temp=-101;//用来保存值ListNode* tempNode=nullptr;ListNode* cursor = head;while(cursor!=nullptr){if(cursor->val!=temp){//确保其不等于temp=cursor->val;//更新值tempNode=cursor;//先保存其更新的节点cursor=cursor->next;//迭代}else{tempNode->next=cursor->next;//synaxIndexException,设置更新的节点链接重复值节点的下一个节点delete cursor;cursor=tempNode->next;//访问下个节点}}return head;}
};

二面面试官:

  1. 三次握手四次挥手

SYN报文 SYN+ACK报文和ACK报文
FIN报文 ACK报文 FIN报文和ACK报文

  1. 红黑树五大原理

红黑树其实就是一种AVL平衡二叉树

根可以是红色也可以是黑色,但基本上叶节点是黑色

红节点的子节点都是黑色,换句话说红节点不能互为父子关系,

每个路径的黑色节点数量都相同。区别在于红色节点是否多。

全为黑色节点的路径是最短路径,最长路径是差不多有黑色节点一样数量的红色节点:最长路径不超过最短路径*2

  1. 测试了解程度

我当时把测试框架说了一遍后也说了测试有很大范畴,首先是从角度来分类可以分成黑盒测试和白盒测试,其中黑盒测试有边界值划分,等价类划分,正交表,基于场景分析,黑盒测试和白盒测试区别在于一个是否查看内部细节,执行测试过程中基本以黑盒测试为主要,白盒测试为辅。
如果是从软件过程角度来思考可以分成问题定义 可行性分析 需求分析 总体设计 详细设计 单元测试 集成测试 系统测试 确认测试 验收测试,这些步骤是

  1. 数据库的基本操作增删改查

create update select delete

  1. 基本命令行应用
    因为我是windows和linux都有所涉及,因此回答该问题时候我直接给面试官打出一系列命令:
    Windows: tasklist taskkill type cd move del chdir rmdir dir net netstat ipconfig clip copy findstr etc…
    Linux: ls pwd cd ps rm rmdir cat tail vm grep nslookup man etc…
    常见命令工具(第三方): vim ssh sftp

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/22052.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

根据Pytorch源码实现的 ResNet18

一&#xff0c;类模块定义: import torch import torch.nn as nn import torch.nn.functional as F from torch import Tensorclass ResBlock(nn.Module):def __init__(self, inchannel, outchannel, stride1) -> None:super(ResBlock, self).__init__()# 这里定义了残差块…

CountDownLatch的使用(判断多个线程是否都执行完毕)

使用CountDownLatch的情景 有一些”多线程下载器"&#xff0c;可以把一个大的文件给拆分成多个小的部分&#xff0c;使用多个线程分别下载&#xff0c;每个线程负责下载一部分&#xff0c;此时每个线程都是一个网络连接&#xff0c;这样就可以大幅度提高下载速度。 假设&a…

Spring Boot使用的关键点

目录 1. 构建系统 1.1. 依赖管理 1.2. Maven Maven项目结构 1.3. Starter 2. 代码结构 2.1. “default” 包 2.2. 启动类的位置 3. Configuration 类 3.1. 导入额外的 Configuration 类 3.2. 导入 XML Configuration 4. 自动装配&#xff08;配置&#xff09; 4.1…

【云原生】深入掌握k8s中Pod和生命周期

个人主页&#xff1a;征服bug-CSDN博客 kubernetes专栏&#xff1a;kubernetes_征服bug的博客-CSDN博客 目录 1 什么是 Pod 2 Pod 基本操作 3 Pod 运行多个容器 4 Pod 的 Labels(标签) 5 Pod 的生命周期 1 什么是 Pod 摘取官网: Pod | Kubernetes 1.1 简介 Pod 是可以在 …

idea打开传统eclipse项目

打开传统web项目 1.打开后选择项目文件 2.选择项目结构 3.设置jdk版本 4.导入当前项目模块 5.选择eclipse 6. 设置保存目录 7.右键模块&#xff0c;添加spring和web文件 8. 设置web目录之类的&#xff0c;并且创建打包工具 9.如果有本地lib&#xff0c;添加为库 最后点击应用&…

Databend 开源周报第 104 期

Databend 是一款现代云数仓。专为弹性和高效设计&#xff0c;为您的大规模分析需求保驾护航。自由且开源。即刻体验云服务&#xff1a;https://app.databend.cn 。 Whats On In Databend 探索 Databend 本周新进展&#xff0c;遇到更贴近你心意的 Databend 。 从 Kafka 载入数…

安装win版本的neo4j(2023最新版本)

安装win版本的neo4j 写在最前面安装 win版本的neo4j1. 安装JDK2.下载配置环境变量&#xff08;也可选择直接点击快捷方式&#xff0c;就可以不用配环境了&#xff09;3. 启动neo4j 测试代码遇到的问题及解决&#xff08;每次环境都太离谱了&#xff0c;各种问题&#xff09;连接…

Java系列之数据库geometry的相关函数

文章目录 前言一、geometry是什么&#xff1f;二、geometry常用函数1.OGC标准函数①管理函数②几何对象关系函数③几何对象处理函数④几何对象存取函数⑤几何对象构造函数 2.PostGIS扩展函数①管理函数②几何操作符③几何量测函数④几何对象输出⑤几何对象创建⑥几何对象编辑⑦…

小研究 - 微服务系统服务依赖发现技术综述(二)

微服务架构得到了广泛的部署与应用, 提升了软件系统开发的效率, 降低了系统更新与维护的成本, 提高了系统的可扩展性. 但微服务变更频繁、异构融合等特点使得微服务故障频发、其故障传播快且影响大, 同时微服务间复杂的调用依赖关系或逻辑依赖关系又使得其故障难以被及时、准确…

AI算法图形化编程加持|OPT(奥普特)智能相机轻松适应各类检测任务

OPT&#xff08;奥普特&#xff09;基于SciVision视觉开发包&#xff0c;全新推出多功能一体化智能相机&#xff0c;采用图形化编程设计&#xff0c;操作简单、易用&#xff1b;不仅有上百种视觉检测算法加持&#xff0c;还支持深度学习功能&#xff0c;能轻松应对计数、定位、…

Spring mvc:SpringServletContainerInitializer

SpringServletContainerInitializer实现了Servlet3.0规范中定义的ServletContainerInitializer&#xff1a; public interface ServletContainerInitializer {void onStartup(Set<Class<?>> c, ServletContext ctx) throws ServletException; }SpringServletCont…

Android 获取网关 ip 和 DNS ip

参考下方 PingUtil.java 代码 import android.content.Context; import android.net.DhcpInfo; import android.net.wifi.WifiManager; import android.text.format.Formatter;import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; impor…

记一次 .NET 某物流API系统 CPU爆高分析

一&#xff1a;背景 1. 讲故事 前段时间有位朋友找到我&#xff0c;说他程序CPU直接被打满了&#xff0c;让我帮忙看下怎么回事&#xff0c;截图如下&#xff1a; 看了下是两个相同的程序&#xff0c;既然被打满了那就抓一个 dump 看看到底咋回事。 二&#xff1a;为什么会打…

新人如何高效写 API 文档

什么是 API 文档&#xff1f; 在深入研究 API 文档之前&#xff0c;让我简要解释一下 API 是什么以及它的基本功能。 API 是应用程序编程接口的首字母缩写。 ​ 编辑 切换为居中 通过 API 将设备连接到数据库 无论你是初学者还是高级开发人员&#xff0c;你都会在软件开发…

Mr. Cappuccino的第53杯咖啡——Mybatis源码分析

Mybatis源码分析 Mybatis源码分析入口1. 读取配置文件总结 2. 解析配置文件核心代码&#xff08;一&#xff09;核心代码&#xff08;二&#xff09;分析parse()方法分析build()方法 总结 3. 获取SqlSession总结 4. 获取mapper代理对象总结 5. 使用mapper代理对象执行Sql语句二…

MySQL操作命令详解:增删改查

文章目录 一、CRUD1.1 数据库操作1.2 表操作1.2.1 五大约束1.2.2 创建表1.2.3 修改表1.2.3 删除表1.2.4 表数据的增删改查1.2.5 去重方式 二、高级查询2.1 基础查询2.2 条件查询2.3 范围查询2.4 判空查询2.5 模糊查询2.6 分页查询2.7 查询后排序2.8 聚合查询2.9 分组查询2.10 联…

【移动机器人运动规划】02 —— 基于采样的规划算法

文章目录 前言相关代码整理:相关文章&#xff1a; 基本概念概率路线图&#xff08;Probabilistic Road Map&#xff09;基本流程预处理阶段查询阶段 优缺点&#xff08;pros&cons&#xff09;一些改进算法Lazy collision-checking Rapidly-exploring Random Tree算法伪代码…

数据结构 10-排序4 统计工龄 桶排序/计数排序(C语言)

给定公司名员工的工龄&#xff0c;要求按工龄增序输出每个工龄段有多少员工。 输入格式: 输入首先给出正整数&#xff08;≤&#xff09;&#xff0c;即员工总人数&#xff1b;随后给出个整数&#xff0c;即每个员工的工龄&#xff0c;范围在[0, 50]。 输出格式: 按工龄的递…

【Jmeter】配置不同业务请求比例,应对综合场景压测

目录 前言 Jmeter5.0新特性 核心改进 其他变化 资料获取方法 前言 Jmeter 5.0这次的核心改进是在许多地方改进了对 Rest 的支持&#xff0c;此外还有调试功能、录制功能的增强、报告的改进等。 我也是因为迁移到了Mac&#xff0c;准备在Mac上安装Jmeter的时候发现它已经…

Java 中的 7 种重试机制

随着互联网的发展项目中的业务功能越来越复杂&#xff0c;有一些基础服务我们不可避免的会去调用一些第三方的接口或者公司内其他项目中提供的服务&#xff0c;但是远程服务的健壮性和网络稳定性都是不可控因素。 在测试阶段可能没有什么异常情况&#xff0c;但上线后可能会出…