【求职】字节跳动2019校招机器学习算法工程师面试

面试问题总结。

问题:
1. 自我介绍。
2. 介绍了一下自己简历上的项目。
3. SVM详细原理。
4. Kmeans原理,何时停止迭代。

算法题:
1. 一个随机整数产生器产生[1,5],如何设计一个产生[1,7]的随机整数产生器。
解法:设k1,k2属于[1,5], 生成k3 = 5*(k1-1)+k2+1, 则k3属于[1,25], 将k3分成两个部分,[1,21]和[22,25]. 判断,若属于[1,21], 则令op=k3%7+1,op属于[1,7], 否则丢弃。

2. 给定一个旋转的有序数组,比如{7,8,9,10,1,2,3}是{1,2,3,7,8,9,10}旋转之后得到的,在数组中查找是否存在元素key。要求时间复杂度为O(lgn)。假定数组中不存在重复元素。

解法:摘自 https://blog.csdn.net/fjqcyq2/article/details/48879861 
每次根据L和R求出M后,M左边[L, M]和右边[M+1, R]这两部分中至少一个是有序的。 
arr[M]和X比较 
(1). arr[M]==X,返回M 
(2). arr[M] < arr[R],说明右侧有序,当 arr[M]< X< arr[R],则L=M+1 , 否则R=M-1 
(3). arr[M] > arr[L],说明左侧有序,当 arr[L]< X< arr[M],则R=M-1,否则L=M+1 
简单代码: 
int CirculateBSearch(const int* arr,int N,int x) 

int L=0,R=N-1,M; 
while(L <= R) 

M = (L+R)>>1; 
if(arr[M] == x) return M; 
if(arr[M] <= arr[R])//arr[M]右侧是有序的 

if(arr[M]< x && x<=arr[R])//x在有序部分的内部 
L = M+1; 
else R = M-1; 

else//arr[M]左侧是有序的 

if(x< arr[M] && arr[L]<=x)//x在有序部分的内部 
R = M-1; 
else L = M+1; 


return -1; 

简单测试: 
const int N = 12; 
int X = 5; 
int arr[N] = {15,16,19,20,25,1,3,4,5,7,10,14}; 
cout<<”Array : “; 
PrintArray(arr,N); 
int index = CirculateBSearch(arr,N,X); 
if(index < 0) cout<< X<<” is not found in arr.\n”; 
else cout<< X<<” is found in arr, index = ” << index << endl;

原文地址:https://www.cnblogs.com/YunyiGuang/p/10335454.html

时间: 2024-08-29 14:19:30

【求职】字节跳动2019校招机器学习算法工程师面试的相关文章

《百面机器学习算法工程师带你去面试》PDF版+epub版

下载:https://pan.baidu.com/s/1DgV5JxWZgyQBKd7wkMXmWw <百面机器学习算法工程师带你去面试>高清PDF版,392页,带书签目录,文字可以复制: <百面机器学习算法工程师带你去面试>高清epub版,101页,带书签目录,文字可以复制. 本书作为AI类书籍知识点非常全面,但在一些章节比如分类模型.神经网络.强化学习等,领域内知识体系展开的不是很详细深入.其实作为面试类书籍,读的时候应该以一种查漏补缺的方式去看,看到一个问题想一想自己这个知识

字节跳动 2019 春季算法实习生在线笔试

1. 题目一 求最少收到多少硬币,即优先用大面额的硬币找零,类似于求一个数的个位十位百位. #include <iostream> #include <stdio.h> using namespace std; int main() { int n; scanf("%d", &n); int change = 1024 - n; int a = change / 64; int b = (change - a * 64) / 16; int c = (c

二分查找技巧---字节跳动2018校招算法方向(第二批)---用户喜好

[编程题]用户喜好 时间限制:3秒 空间限制:262144K 为了不断优化推荐效果,今日头条每天要存储和处理海量数据.假设有这样一种场景:我们对用户按照它们的注册时间先后来标号,对于一类文章,每个用户都有不同的喜好值,我们会想知道某一段时间内注册的用户(标号相连的一批用户)中,有多少用户对这类文章喜好值为k.因为一些特殊的原因,不会出现一个查询的用户区间完全覆盖另一个查询的用户区间(不存在L1<=L2<=R2<=R1). 输入描述: 输入: 第1行为n代表用户的个数 第2行为n个整数,第

网易机器学习算法工程师笔试编程题

1. 小易为了向他的父母表现他已经长大独立了,他决定搬出去自己居住一段时间.一个人生活增加了许多花费: 小易每天必须吃一个水果并且需要每天支付x元的房屋租金.当前小易手中已经有f个水果和d元钱,小易也能去商店购买一些水果,商店每个水果售卖p元.小易为了表现他独立生活的能力,希望能独立生活的时间越长越好,小易希望你来帮他计算一下他最多能独立生活多少天. 输入描述: 输入包括一行,四个整数x, f, d, p(1 ≤ x,f,d,p ≤ 2 * 10^9),以空格分割 输出描述: 输出一个整数, 表

网易2019校招C++研发工程师笔试编程题

题目描述: 又到了丰收的季节,恰逢小易去牛牛的果园里游玩. 牛午常说他对整个果园的每个地方都了如指掌,小易不太相信, 所以他想考考牛牛. 在果园里有N堆苹果,每堆苹果的数量为ai,小易希望知道从左往 右数第x个苹果是属于哪一堆的. 牛牛觉得这个问题大简单,所以希望你来着他回答. 输入描述: 第一行一个数n(1<=n<=100000) 第二行n个数ai(1<=ai<=1000),表示从左往右数第i堆有多少苹果 第三行一个数m(1<=m<=100000),表示有m次询口.

百度2019校招Web前端工程师笔试卷(第二批)

一.linux系统下有多个文件目录,每个文件目录都有其独特的功能和作用 /bin 存放普通用户可以使用的指令. /usr 这个目录中包含了命令库文件和在通常操作中不会修改的文件,其地位类似Windows上面的”Program Files”目录(安装程序的时候,默认就是安装在此文件内部某个子文件夹内.输入命令后系统默认执行/usr/bin下的程序. /etc 全局的配置文件存放目录.存放系统和软件的配置./boot 引导程序,内核等存放的目录. 二.JavaScript实现继承的方式 1.原型链继

机器学习算法岗面试常见问题

过拟合原因 数据:数据不规范,数据量少,数据穿越,统计特征用到了未来的信息或者标签信息 算法:算法过于复杂 解决: 1.将数据规范化,处理缺失值,增加数据量,采样,添加噪声数据 2.正则化,控制模型复杂程度, 3.early stoping,减少迭代次数,减少树的深度, 4.学习率调大/小点. 5.融合几个模型 L1和L2的区别 1.L1是Lasso Regression,表示向量中每个元素绝对值的和:L1范数的解通常是稀疏性的,倾向于选择数目较少的一些非常大的值或者数目较多的insignifi

nlp算法工程师面试准备

紧张起来 最近三个月时间安排,紧张起来为了你的 2021年1月1号买model3(还有353天)  如果你能做好下边这些 月薪35k 没问题,机器学习工资依然很高,留在北京,抓住机会,不要回济南! 有时间就刷boos直聘:发现高薪的机器学习公司和岗位(真的很多) 目标公司及岗位: 上班时间做这些: 贝叶斯(ok) cnn(python ok)需要实现在c++下使用 word2vec(ok) xgboots(看原理博客.视频 写一篇自己的博客,出demo) svm(看博客原理.视频 写一篇自己的博

字节跳动面试总结(2019年8月)

个人简介 本人坐标南京,16年毕业,在某一传统行业从事JavaWeb后端开发,三年工作经验.出于技术焦虑.能力成长陷入瓶颈.对体制内的文化和氛围无法适应等原因,决心换个环境和工作,进入互联网行业,继续自己的技术追求之路.19年8月应聘字节跳动公司的后端研发工程师岗位,现对经历的4轮技术面和1轮HR面做个总结. 面试经历 每轮技术面时长40min-1h不等,可能一次一轮面试,也可能两轮连续进行.每轮先以简单的自我介绍开场,然后面试官根据个人的工作经历和技术能力进行提问,最后预留20min~30mi