Machine Learning Engineer (Ads) Interview Questions
A Guide to Pass the MLE interview.
先学习基本知识,锻炼抽象思维,把题目抽象成最基本的数据结构和算法并解决。
最接近的三数之和(lc.16):做过类似的题,但第一时间没反应过来是排序+双指针,往递归和回溯的错误思路想了很久,想了一个O(N^2)的暴力解法还卡了很久没写出来,在面试官老师提示先排序后才想到用双指针写了出来;
最长回文子串
浮点数平方根
删除排序链表中出现大于一次的节点
给一颗二叉树,求二叉树的子树中符合二叉搜索树结构的子树的权值和。
二叉树最大路径和
飞机选座位
找到第K大的数(快排+优化+堆排序)
归并排序
加油站
有效三角形的个数
数值的整数次方
x的平方根,保留指定精度
x轴上有几条线段,可能互相有交叉重叠,我们可以创建与y轴平行的线条,如果与创建的y轴平行的线条有交叉,那么x轴上的线段就被消除,问最少需要几条线条才能将x轴上的线条全部消除
给定一个由0和1组成的矩阵,找出每个元素到最近1的距离
给你一个数组和一个整数k,从数组中选择两个长度为k的子数组(这两个子数组不允许有交叉),使得这两个子数组的数组和,相加之后最大。要求时间复杂度O(n)
n堆石子围成一排,每堆石子的量a[i]已知每次可以将相邻两堆合并为一堆,将合并后石子的总量记为这次合并的得分。n-1次合并后石子成为一堆,求这n-1次合并的得分之和的最大值
买卖股票的最佳时机(lc.122)
手写一个str2num,将一个字符串转化成整数,比如”-2131” -> -2131,撕出来之后加大难度,包含小数点情况转化成浮点数,比如”+002131.00143” -> 2131.00143,“-.9” -> -0.9,后来由于时间缘故和其他原因,没有继续加大难度考虑科学计数和溢出的情况。
给一个字典,按照val值降序排序怎么操作
给一个数字n,表示有1…n个数字。问这n个数字能组成多少个二叉搜索树?
最大子矩阵和
乘积最大子数组
用数组实现最大优先队列类
[1,2,3,4,54,56,5] 不能相隔偷,最多能投多少
括号匹配
三数之和组合数
柱状图中最大的矩形
矩阵,从左上走到右下的不同路径的个数。0可走,1障碍
n次方后的最后三位数
最大矩形的变体
单词拼接
最长上升子序列,要求O(nlogn)复杂度
二叉树的最大路径
分糖果
全组合II
数字转中文
按分隔符翻转字符串
接雨水II
AUC计算
合并K个石头的最小成本
一道没见过的背包问题
拆分整数
最短路径
优化矩阵乘法
N皇后
查找二叉树根节点到叶子的路径和,写了递归之后让剪枝
剑指 Offer 34: 二叉树中和为某一值的路径
NC35 最小编辑代价
剑指 Offer 59 - I. 滑动窗口的最大值
LIS最长上升子序列的长度
lc257 二叉树的所有路径
lc64 矩阵最小路径和
逆时针旋转90度矩阵,O(1)的空间复杂度
自己实现sqrt函数,结果保留5位小数
10亿个数,内存只有1M,如何让这10亿个数有序
二叉树子路径和为k的路径个数
求和为k的子数组个数
判断是否存在个数超过数组长度一半的数
leecode 102
in-order traversal
leetcode 42
给定MxN的矩阵,询问子矩阵的和的最大值
手写kmeans算法
二叉树找距离target为k的所有节点,用父节点加bfs解决
链表的quicksort以及在两个链表中查找和为k的两个节点
手写lru算法,doublelinked list解决
两颗bst树各出一个node是否能找到和等于k,可以遍历成数组+双指针解决
一个list包含多个string,找出这个list里是长串S1的子串,基础版本可以用双指针匹配加遍历解决,时间复杂度更少的可以用桶方法
迷宫问题,二维矩阵包含多个人,有一个出口e,墙用x表示,可以走的地方用.表示, 多个人同时出发,最少多少步以后所有人可以找到出口。是传统的bfs算法。
bfs的经典问题:8皇后问题
找到连续递增的最长子串,dp问题。
岛屿的数量,传统bfs算法
跳远,每次可以跳一格或者两格。就是简单的dp问题(斐波那契)
写出sqrt函数,就是二分法。(有意思,兴许还有更好的方法哦)