华为OD技术面试案例1-2024年

news/2024/7/20 19:49:32 标签: 华为od, 面试, 职场和发展, python

背景:

  • 学校背景:211本科
  • 工作经验:1年半
  • 转行目标:测试岗位

一、机考 (得分:350+)

二、01.04 hr面

  1. 自我介绍
  2. 选择东莞的原因
  3. 对OD(华为研发岗位)的看法
  4. 家庭情况
  5. 简历相关问题
  6. 期望薪资

三、01.11 技术一面(算法题没写出来)

约瑟夫环问题
13个人围成一圈,从第一个人开始1、2、3顺序循环报数,凡数到3的人退出圈子,输出最后留在圈中的人的序号。


python">def josephus(n):
    # 创建人员列表
    people = list(range(1, n + 1))

    # 初始化索引和报数计数器
    index = 0
    count = 0

    while len(people) > 1:
        count += 1
        # 报数到3时淘汰当前人员
        if count == 3:
            people.pop(index)
            count = 0
        else:
            index = (index + 1) % len(people)

    return people[0]
# 输入人数
n = 13

# 调用函数计算最后留下的人的编号
result = josephus(n)

# 输出结果
print("最后留下的是原来第{}号的人".format(result))

  1. 测试八股文
  2. 项目介绍和细节
  3. * 3.1 Python函数作用域
  4. * 3.2 Python函数参数传递
  5. * 3.3 Python多线程
  6. 手撕算法题:约瑟夫环问题

四、01.13 技术二面

  1. 介绍项目
  2. Python深拷贝和浅拷贝
  3. Python面向对象的特点:封装、继承、多态
  4. Python的数据结构:可变类型和不可变类型
  5. Python多线程和线程池的优点
  6. Python值传递和引用传递
  7. 手撕算法题(通过):全排列 
#给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。
#[全排列问题](https://leetcode.cn/problems/permutations/description/)
python">class Solution:
    # 主函数,输入一组不重复的数字,返回它们的全排列
    def permute(self, nums: List[int]) -> List[List[int]]:
        #记录结果
        res=[]
        # 记录「路径」
        track = []
        # 「路径」中的元素会被标记为 true,避免重复使用
        used = [False for _ in range(len(nums))]
    # 路径:记录在 track 中
    # 选择列表:nums 中不存在于 track 的那些元素(used[i] 为 false)
    # 结束条件:nums 中的元素全都在 track 中出现
        def backtrack(nums, track, used):
            #触发结束条件
            if len(track)==len(nums):
                # res.append(track[:])
                res.append(track.copy())
                return
            for i in range(len(nums)):
                # 排除不合法的选择
                if used[i]:
                    continue
                # 做选择
                track.append(nums[i])
                used[i]=True
                # 进入下一层回溯树
                backtrack(nums,track,used)
                # 取消选择
                track.pop()
                used[i]=False
        backtrack(nums, track, used)
        return res

五、01.17 技术三面 (汗流浃背了)

#给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i != j、i != k 且 j != k ,##同时还满足 nums[i] + nums[j] + nums[k] == 0 。请你返回所有和为 0 且不重复的三元组。
#注意:答案中不可以包含重复的三元组。
python">class Solution:
    def threeSum(self, nums: List[int]) -> List[List[int]]:
        nums.sort()
        ans = []
        n = len(nums)
        for i in range(n - 2):
            x = nums[i]
            if i > 0 and x == nums[i - 1]:
                continue
            j = i + 1
            k = n - 1
            while j < k:
                s = x + nums[j] + nums[k]
                if s > 0:
                    k -= 1
                elif s < 0:
                    j += 1
                else:
                    ans.append([x, nums[j], nums[k]])
                    j += 1
                    while j < k and nums[j] == nums[j - 1]:
                        j += 1
                    k -= 1
                    while k > j and nums[k] == nums[k + 1]:
                        k -= 1
        return ans
  1. 深挖项目
  2. 介绍测试流程
  3. 保证无遗漏无重测的方法
  4. Python多线程在项目中的应用
  5. Web自动化测试:pytest、selenium
  6. 其他部分忘记了
  7. 手撕算法题(通过):三数之和

六、01.17 主管面

  1. 自我介绍
  2. 项目介绍:代码量、解决的问题,解决问题的方式方法
  3. 遇到的最大困难及解决方法
  4. 对华为OD的了解,对工作加班的接受
  5. 薪资状况和期望薪资
  6. 适合这个岗位的优点
  7. 反问:部门的培养方式

七、感受

面试的是测试岗位,只要充分准备,技术面不难。

后续和联系人沟通,他建议,如果遇到了不熟悉的算法题,如果实在不会,可以与面试官沟通更换题目。

现在正在等待后续审批

# 更新

2月6日,终于收到offer


http://www.niftyadmin.cn/n/5397051.html

相关文章

【常用的 SVN 命令及简要示例】

常用的 SVN 命令及简要示例&#xff0c;供您参考&#xff1a; 检出代码: svn checkout https://svn.example.com/project/trunk提交修改: svn commit -m "Commit message"更新代码: svn update创建分支: svn copy https://svn.example.com/project/trunk \https://sv…

OpenCV算法库

numba numba是一个用于编译Python数组和数值计算函数的编译器&#xff0c;这个编译器能够大幅提高直接使用Python编写的函数的运算速度。 Numba是一个用于Python的即时&#xff08;Just-in-time, JIT&#xff09;编译器。将面向数组和使用大量数学的python代码优化到与c&…

C语言KR圣经笔记 8.7样例 - 内存分配器 [全书完]

8.7 样例 - 内存分配器 在第五章中&#xff0c;我们给出了一个非常受限的面向栈的内存分配器。这次我们要写一个不受限制的版本。使用者能够以任意顺序调用 malloc 和 free&#xff1b;malloc 按需向操作系统申请更多的内存。这些例程说明了以相对不依赖于机器的方式来写依赖于…

Android 架构MVI、MVVM、MVC、MVP

目录 一、MVC&#xff08;Model-View-Controller&#xff09; 二、 MVP&#xff08;Model-View-Presenter&#xff09; 三. MVVM&#xff08;Model-View-ViewModel&#xff09; 四. MVI&#xff08;Model-View-Intent&#xff09; 五.MVI简单实现 先简单了解一下MVC、MVP和…

maven--->maven中的<properties>属性有什么作用?

&#x1f64c;&#x1f64c;&#x1f64c;&#x1f64c;&#x1f64c;&#x1f64c; 在Maven中&#xff0c;元素用于定义项目中可重用的属性值。这些属性值可以在项目的POM文件中被引用&#xff0c;以便在整个项目中统一管理和使用。通过使用元素&#xff0c;可以避免在POM文件…

海量物理刚体 高性能物理引擎Unity Physics和Havok Physics的简单性能对比

之前的博客中我们为了绕过ECS架构&#xff0c;相当于单独用Batch Renderer Group实现了一个精简版的Entities Graphics&#xff0c;又使用Jobs版RVO2实现了10w人同屏避障移动。 万人同屏对抗割草 性能测试 PC 手机端 性能表现 弹幕游戏 海量单位同屏渲染 锁敌 避障 非ECS 那么有…

【二】【SQL】去重表数据及分组聚合查询

去重表数据 表的准备工作 去除表中重复的数据&#xff0c;重复的数据只留一份。 mysql> create table duplicate_table (-> id int,-> name varchar(20)-> ); Query OK, 0 rows affected (0.03 sec)mysql> insert into duplicate_table values-> (100,aaa)…

Django模型进阶(Mysql配置、模型管理,表关联、一对一、一对多,多对多)

模型进阶&#xff1a; Mysql配置&#xff1a; 1.安装mysql 2安装MySQL驱动&#xff0c;使⽤mysqlclient pip install mysqlclient pip install -i https://pypi.douban.com/simple mysqlclientLinux Ubuntu下需要先安装&#xff1a;apt install libmysqld-dev 再安装: apt…