OPPO 机器学习工程师 秋招记录贴
9.2 笔试 算法ak了,秋招以来第一次这么顺利!
1.三数和 双指针即可
# 三数求和 class Solution: def threeSum(self , nums: List[int], target: int) -> List[List[int]]: nums.sort() n = len(nums) result = [] for i in range(n-1): left = i + 1 right = n - 1 if nums[i] > target: break if i >= 1 and nums[i] == nums[i-1]: continue while left < right: sum_num = nums[i] + nums[left] + nums[right] if sum_num > target: right -= 1 elif sum_num < target: left += 1 else: result.append([nums[i],nums[left],nums[right]]) while left != right and nums[left] == nums[left+1]: left += 1 while left != right and nums[right] == nums[right-1]: right -= 1 left += 1 right -= 1 result.sort() return result2.概率题,重点在概率公式
# 假设有k只小鸟和n个树洞,每只小鸟均匀随机选择一个树洞,给定n,计算当k不小于多少时 # 至少存在一对小鸟选择了同一个树洞这件事的概率不小于p(0<p<=1) import math n, p = input().strip().split() n = int(n) p = float(p) if n < 2: print(2) elif p == 1: print(n + 1) else: for k in range(2,2*n): tmp = 1 - math.comb(n,k) * math.factorial(k) / pow(n,k) if tmp >= p: print(k) break3.最小公倍数
# 输入3个正整数,求最小公倍数 a,b,c = map(int,input().strip().split()) num = max(a,b,c) t = 1 for i in range(2,num+1): flag = 1 while flag == 1: flag = 0 if a % i == 0: a /= i flag = 1 if b % i == 0: b /= i flag = 1 if c % i == 0: c /= i flag = 1 if flag == 1: t *= i num = max(a,b,c) print(t)
------------------------------------------------------------------
9.7 9:30-10:00 一面,要求保密 显示已完成 一天后通知二面
9.13 16:40 二面 已完成 面试官是做搜广推的,问了一些深度学习的基础知识,但是我对搜广推的了解比较少,聊不起来,就让做了个题,emmm还比较简单吧,目前是已完成
面试官也没啥建议,评价说还行吧
9.13 晚上约hr面
9.16 10:30 HR面 已完成 面试内容要求保密
祈愿offer