背景:
- 學校背景:211本科
- 工作經驗:1年半
- 轉行目標:測試崗位
一、機考 (得分:350+)
二、01.04 hr面
- 自我介紹
- 選擇東莞的原因
- 對OD(華為研發崗位)的看法
- 家庭情況
- 簡歷相關問題
- 期望薪資
三、01.11 技術一面(算法題沒寫出來)
約瑟夫環問題 13個人圍成一圈,從第一個人開始1、2、3順序循環報數,凡數到3的人退出圈子,輸出最后留在圈中的人的序號。
def josephus(n):# 創建人員列表people = list(range(1, n + 1))# 初始化索引和報數計數器index = 0count = 0while len(people) > 1:count += 1# 報數到3時淘汰當前人員if count == 3:people.pop(index)count = 0else:index = (index + 1) % len(people)return people[0]
# 輸入人數 n = 13# 調用函數計算最后留下的人的編號 result = josephus(n)# 輸出結果 print("最后留下的是原來第{}號的人".format(result))
- 測試八股文
- 項目介紹和細節
- * 3.1 Python函數作用域
- * 3.2 Python函數參數傳遞
- * 3.3 Python多線程
- 手撕算法題:約瑟夫環問題
四、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())returnfor i in range(len(nums)):# 排除不合法的選擇if used[i]:continue# 做選擇track.append(nums[i])used[i]=True# 進入下一層回溯樹backtrack(nums,track,used)# 取消選擇track.pop()used[i]=Falsebacktrack(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 且不重復的三元組。 #注意:答案中不可以包含重復的三元組。
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]:continuej = i + 1k = n - 1while j < k:s = x + nums[j] + nums[k]if s > 0:k -= 1elif s < 0:j += 1else:ans.append([x, nums[j], nums[k]])j += 1while j < k and nums[j] == nums[j - 1]:j += 1k -= 1while k > j and nums[k] == nums[k + 1]:k -= 1return ans
- 深挖項目
- 介紹測試流程
- 保證無遺漏無重測的方法
- Python多線程在項目中的應用
- Web自動化測試:pytest、selenium
- 其他部分忘記了
- 手撕算法題(通過):三數之和
六、01.17 主管面
- 自我介紹
- 項目介紹:代碼量、解決的問題,解決問題的方式方法
- 遇到的最大困難及解決方法
- 對華為OD的了解,對工作加班的接受
- 薪資狀況和期望薪資
- 適合這個崗位的優點
- 反問:部門的培養方式
七、感受
我面試的是測試崗位,只要充分準備,技術面不難。
后續和聯系人溝通,他建議,如果遇到了不熟悉的算法題,如果實在不會,可以與面試官溝通更換題目。
現在正在等待后續審批。
# 更新
2月6日,終于收到offer