华为OD面经背景:学校背景:211本科工作经验:1年半转行目标:测试岗位一、机考 (得分:350+)二、01.04 hr面自我介绍选择东莞的原因对OD(华为研发岗位)的看法家庭情况简历相关问题期望薪资三、01.11 技术一面(算法题没写出来)测试八股文项目介绍和细节* 3.1 Python函数作用域* 3.2 Python函数参数传递* 3.3 Python多线程手撕算法题:约瑟夫环问题约瑟夫环问题13个人围成一圈,从第一个人开始1、2、3顺序循环报数,凡数到3的人退出圈子,输出最后留在圈中的人的序号。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))四、01.13 技术二面介绍项目Python深拷贝和浅拷贝Python面向对象的特点:封装、继承、多态Python的数据结构:可变类型和不可变类型Python多线程和线程池的优点Python值传递和引用传递手撕算法题(通过):全排列 #给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。#[全排列问题](https://leetcode.cn/problems/permutations/description/)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 技术三面 (汗流浃背了)深挖项目介绍测试流程保证无遗漏无重测的方法Python多线程在项目中的应用Web自动化测试:pytest、selenium其他部分忘记了手撕算法题(通过):三数之和#给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i != j、i != k 且 j != k ,##同时还满足 nums[i] + nums[j] + nums[k] == 0 。请你返回所有和为 0 且不重复的三元组。#注意:答案中不可以包含重复的三元组。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六、01.17 主管面自我介绍项目介绍:代码量、解决的问题,解决问题的方式方法遇到的最大困难及解决方法对华为OD的了解,对工作加班的接受薪资状况和期望薪资适合这个岗位的优点反问:部门的培养方式七、感受我面试的是测试岗位,只要充分准备,技术面不难。后续和联系人沟通,他建议,如果遇到了不熟悉的算法题,如果实在不会,可以与面试官沟通更换题目。现在正在等待后续审批。# 更新2月6日,终于收到offer
点赞 13
评论 4
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务