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

华为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

相关文章:

华为OD面试记录

The experience of applying for software test engineer(Dispatcher) 记录保存 招聘岗位: 测试工程师 Base:西安 华为面试流程如下&#xff1a; 流程名内容机试三题,总分400分,最后一道题200分人力资源面试询问私人问题&#xff0c;不谈薪资一面技术面二面技术面主管问项目…...

电源控制--品质因素Q值全解

什么是品质因素Q值&#xff1f; 在电源控制中&#xff0c;品质因素 Q 值通常用于描述电源滤波器的性能。电源滤波器用于减小电源中的噪声和干扰&#xff0c;以提供干净稳定的电源供应给电子设备。 品质因素 Q 值在电源滤波器中表示滤波器的带宽和中心频率之比&#xff0c;用于…...

实际工作中通过python+go-cqhttp+selenium实现自动检测维护升级并发送QQ通知消息(程序内测)

说明&#xff1a;该篇博客是博主一字一码编写的&#xff0c;实属不易&#xff0c;请尊重原创&#xff0c;谢谢大家&#xff01; 首先&#xff0c;今年比较忙没有多余时间去实操创作分享文章给大家&#xff0c;那就给大家分享下博主在实际工作中的一点点内容吧&#xff0c;就当交…...

EC200 CAT1 拨号PPP

**硬件支持型号 点击 查看 硬件支持 详情** DTU701 产品详情 DTU702 产品详情 DTU801 产品详情 DTU802 产品详情 DTU902 产品详情 G5501 产品详情 目前 DTU系列 产品&#xff0c;WIFI4G拨号 &#xff0c;默认开机自启动拨号。 WIFI 只需要 根据现场 修改SSID热点和密码…...

外网通过ipv6访问家里设备

想从公司访问家里的设备&#xff0c;比较轻松方便的&#xff0c;用向日葵也可以远程。但是家里电脑比较old的了&#xff0c;向日葵开起来&#xff0c;占用内存挺大的&#xff0c;想尝试windows自带的“mstsc”&#xff0c;所以硬着头皮搞ipv6. &#xff08;重点提示&#xff1…...

docker 如何使用代理

为docker添加代理有三种情况&#xff1a; 为docker pull&#xff08;dockerd&#xff09;添加代理为Docker build添加代理为docker容器添加代理 参考文章如下&#xff1a; 如何优雅的给 Docker 配置网络代理Configure the daemon with systemd 其中&#xff0c;如果在使用代…...

Go和Java实现装饰器模式

Go和Java实现装饰器模式 我们通过人穿着打扮自己的实例来演示装饰器模式的用法。 1、装饰器模式 装饰器模式允许向一个现有的对象添加新的功能&#xff0c;同时又不改变其结构。这种类型的设计模式属于结构型模式&#xff0c;它 是作为现有的类的一个包装。 装饰器模式通过…...

Android中级——RemoteView

RemoteView RemoteView的应用NotificationWidgetPendingIntent RemoteViews内部机制模拟RemoteViews RemoteView的应用 Notification 如下开启一个系统的通知栏&#xff0c;点击后跳转到某网页 public class MainActivity extends AppCompatActivity {private static final …...

SpringBoot核心内容梳理

1.SpringBoot是什么? Spring Boot是一个基于Spring框架的快速开发应用程序的工具。它简化了Spring应用程序的创建和开发过程&#xff0c;使开发人员能够更快速地创建独立的、生产就绪的Spring应用程序。它采用了“约定优于配置”的原则&#xff0c;尽可能地减少开发人员需要进…...

Benchmarking Augmentation Methods for Learning Robust Navigation Agents 论文阅读

论文信息 题目&#xff1a;Benchmarking Augmentation Methods for Learning Robust Navigation Agents: the Winning Entry of the 2021 iGibson Challenge 作者&#xff1a;Naoki Yokoyama, Qian Luo 来源&#xff1a;arXiv 时间&#xff1a;2022 Abstract 深度强化学习和…...

面试题:HTTP Code码及应用场景分析

1xx 消息(临时响应) 属于临时相应&#xff0c;代表所发出的请求已经被接受&#xff0c;需要继续进行处理。只包含状态行和某些可选的响应头信息&#xff0c;并以空行结束。由于 HTTP/1.0 协议中没有定义任何 1xx 状态码&#xff0c;所以除非在某些试验条件下&#xff0c;服务器…...

The ‘kotlin-android-extensions‘ Gradle plugin is no longer supported.

Android使用kotlin开发&#xff0c;运行报错 The kotlin-android-extensions Gradle plugin is no longer supported. Please use this migration guide (https://goo.gle/kotlin-android-extensions-deprecation) to start working with View Binding (https://developer.an…...

vi 编辑器入门到高级

vi 编辑器的初级用法vi 编辑器的工作模式1. 命令模式2. 文本输入模式3. 状态行vi 工作模式切换存储缓冲区 vi 编辑器命令1. 启动 vi2. 文本输入3. 退出 vi4. 命令模式下的 光标移动5. 命令模式下的 文本修改6. 从 命令模式 进入 文本输入模式7. 搜索字符串8. vi 在线帮助文档 v…...

【大数据】Flink 详解(二):核心篇 Ⅰ

Flink 详解&#xff08;二&#xff09;&#xff1a;核心篇 Ⅰ 14、Flink 的四大基石是什么&#xff1f; ​ Flink 的四大基石分别是&#xff1a; Checkpoint&#xff08;检查点&#xff09;State&#xff08;状态&#xff09;Time&#xff08;时间&#xff09;Window&#xff…...

Day 75:通用BP神经网络 (2. 单层实现)

代码&#xff1a; package dl;import java.util.Arrays; import java.util.Random;/*** Ann layer.*/ public class AnnLayer {/*** The number of input.*/int numInput;/*** The number of output.*/int numOutput;/*** The learning rate.*/double learningRate;/*** The m…...

PHP序列化,反序列化

一.什么是序列化和反序列化 php类与对象 类是定义一系列属性和操作的模板&#xff0c;而对象&#xff0c;就是把属性进行实例化&#xff0c;完事交给类里面的方法&#xff0c;进行处理。 <?php class people{//定义类属性&#xff08;类似变量&#xff09;,public 代表可…...

Android google admob Timeout for show call succeed 问题解决

项目场景&#xff1a; 项目中需要接入 google admob sdk 实现广告商业化 问题描述 在接入Institial ad 时&#xff0c;onAdLoaded 成功回调&#xff0c;但是onAdFailedToShowFullScreenContent 也回调了错误信息 “Timeout for show call succeed.” InterstitialAd.load(act…...

EFLFK——ELK日志分析系统+kafka+filebeat架构

环境准备 node1节点192.168.40.16elasticsearch2c/4Gnode2节点192.168.40.17elasticsearch2c/4GApache节点192.168.40.170logstash/Apache/kibana2c/4Gfilebeat节点192.168.40.20filebeat2c/4G https://blog.csdn.net/m0_57554344/article/details/132059066?spm1001.2014.30…...

C# MVC controller 上传附件及下载附件(笔记)

描述&#xff1a;Microsoft.AspNetCore.Http.IFormFileCollection 实现附件快速上传功能代码。 上传附件代码 [Route("myUploadFile")][HttpPost]public ActionResult MyUploadFile([FromForm] upLoadFile rfile){string newFileName Guid.NewGuid().ToString(&quo…...

安装element-plus报错:Conflicting peer dependency: eslint-plugin-vue@7.20.0

VSCode安装element-plus报错&#xff1a; D:\My Programs\app_demo>npm i element-plus npm ERR! code ERESOLVE npm ERR! ERESOLVE could not resolve npm ERR! npm ERR! While resolving: vue/eslint-config-standard6.1.0 npm ERR! Found: eslint-plugin-vue8.7.1 npm E…...

【网络】每天掌握一个Linux命令 - iftop

在Linux系统中&#xff0c;iftop是网络管理的得力助手&#xff0c;能实时监控网络流量、连接情况等&#xff0c;帮助排查网络异常。接下来从多方面详细介绍它。 目录 【网络】每天掌握一个Linux命令 - iftop工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景…...

零门槛NAS搭建:WinNAS如何让普通电脑秒变私有云?

一、核心优势&#xff1a;专为Windows用户设计的极简NAS WinNAS由深圳耘想存储科技开发&#xff0c;是一款收费低廉但功能全面的Windows NAS工具&#xff0c;主打“无学习成本部署” 。与其他NAS软件相比&#xff0c;其优势在于&#xff1a; 无需硬件改造&#xff1a;将任意W…...

ffmpeg(四):滤镜命令

FFmpeg 的滤镜命令是用于音视频处理中的强大工具&#xff0c;可以完成剪裁、缩放、加水印、调色、合成、旋转、模糊、叠加字幕等复杂的操作。其核心语法格式一般如下&#xff1a; ffmpeg -i input.mp4 -vf "滤镜参数" output.mp4或者带音频滤镜&#xff1a; ffmpeg…...

Java-41 深入浅出 Spring - 声明式事务的支持 事务配置 XML模式 XML+注解模式

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; &#x1f680; AI篇持续更新中&#xff01;&#xff08;长期更新&#xff09; 目前2025年06月05日更新到&#xff1a; AI炼丹日志-28 - Aud…...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个生活电费的缴纳和查询小程序

一、项目初始化与配置 1. 创建项目 ohpm init harmony/utility-payment-app 2. 配置权限 // module.json5 {"requestPermissions": [{"name": "ohos.permission.INTERNET"},{"name": "ohos.permission.GET_NETWORK_INFO"…...

08. C#入门系列【类的基本概念】:开启编程世界的奇妙冒险

C#入门系列【类的基本概念】&#xff1a;开启编程世界的奇妙冒险 嘿&#xff0c;各位编程小白探险家&#xff01;欢迎来到 C# 的奇幻大陆&#xff01;今天咱们要深入探索这片大陆上至关重要的 “建筑”—— 类&#xff01;别害怕&#xff0c;跟着我&#xff0c;保准让你轻松搞…...

为什么要创建 Vue 实例

核心原因:Vue 需要一个「控制中心」来驱动整个应用 你可以把 Vue 实例想象成你应用的**「大脑」或「引擎」。它负责协调模板、数据、逻辑和行为,将它们变成一个活的、可交互的应用**。没有这个实例,你的代码只是一堆静态的 HTML、JavaScript 变量和函数,无法「活」起来。 …...

Vue ③-生命周期 || 脚手架

生命周期 思考&#xff1a;什么时候可以发送初始化渲染请求&#xff1f;&#xff08;越早越好&#xff09; 什么时候可以开始操作dom&#xff1f;&#xff08;至少dom得渲染出来&#xff09; Vue生命周期&#xff1a; 一个Vue实例从 创建 到 销毁 的整个过程。 生命周期四个…...

FFmpeg avformat_open_input函数分析

函数内部的总体流程如下&#xff1a; avformat_open_input 精简后的代码如下&#xff1a; int avformat_open_input(AVFormatContext **ps, const char *filename,ff_const59 AVInputFormat *fmt, AVDictionary **options) {AVFormatContext *s *ps;int i, ret 0;AVDictio…...

解析两阶段提交与三阶段提交的核心差异及MySQL实现方案

引言 在分布式系统的事务处理中&#xff0c;如何保障跨节点数据操作的一致性始终是核心挑战。经典的两阶段提交协议&#xff08;2PC&#xff09;通过准备阶段与提交阶段的协调机制&#xff0c;以同步决策模式确保事务原子性。其改进版本三阶段提交协议&#xff08;3PC&#xf…...