今日头条 2018 AI Camp 视频面试
1. 本次面试是在牛客网平台进行的,没有涉及到技术细节,面试官也说仅仅是聊天。但是,不知道是网络卡顿还是平台缘故,连接非常不稳定,经常听不到声音,对方那边噪音也特别大,面试体验不是很好。
2. 面试时间三十分钟,大体上问了以下几个方面的问题:
- 自我介绍?
- 有没有阅读过源码的经历,假如给你一份源代码,你准备怎么阅读?
- 大学期间自学过什么知识,是如何自学的?
- 项目介绍以及目前取得的成果?
- 在项目中遇到过哪些问题,怎么解决的?
- 大学里坚持过哪些事情?
3. 前面这些问题都是一些开放性问题,只在最后问到了一个附加编程题。
给定一个无序数组,找出某一元素后面第一个比它大的数字。
思路:用栈来实现。
- 从第一个元素开始进栈,每次对栈顶元素和序列的下一个元素进行比较,直至找到第一个比它大的数再出栈。
- 若栈顶元素小于序列元素,此序列元素即为后面第一个比它大的数,栈顶元素出栈,继续进行比较;若栈顶元素大于等于序列元素,则继续将此序列元素压栈,再进行下一轮比较;若栈为空,则压入当前正在比较的序列元素。
- 若比较到最后一个元素同时栈为空或者最后一个元素依然小于等于栈顶元素,则比较结束。
代码如下:
/* 找出一个无序序列中在某个数后面第一个比它大的数 测试用例如下:
6 3 1 5 4 2 6
5 5 6 6 6 10 2 4 5 8 9 7 10 6 64 1
4 5 8 9 10 10 64 64 0 10 6 3 2 7 1 0 9 8 5 10
7 7 7 9 9 9 10 10 10 */ #include <iostream>
#include <vector> using namespace std; int main()
{
int n = ;
cin >> n; int data[n] = {};
int result[n-] = {};
int i = ;
for(i = ; i < n; i++)
{
cin >> data[i];
} vector<int> num; //作为栈保存数据
vector<int> index; //保存栈中数据在原始序列中的位置 i = ; // 初始化为 0,向栈压入第一个数据
while ()
{
if (int(num.size()) == )
{
// 栈为空,并且比较到最后一个数据,循环结束
if (i == n-)
{
cout << "exit2" << endl;
break;
}
// 栈为空,压入新的数据
num.push_back(data[i]);
index.push_back(i);
i++;
} // 每次拿当前数据与栈顶元素比较,
// 若当前数据小于等于栈顶数据,继续压栈
int len = int(num.size() - );
while (num[len] >= data[i])
{
// 比较到最后一个数据仍然比栈顶小,大循环结束
if (i == n - )
{
cout << "exit1" << endl;
goto END;
}
num.push_back(data[i]);
index.push_back(i);
i++;
len = int(num.size() - );
} // 若当前数据大于栈顶数据,当前数据即为栈顶数据后面
// 第一个比它大的数,然后弹出栈顶数据,进行下一轮比较
result[index[len]] = data[i];
num.pop_back();
index.pop_back();
} END:for(i = ; i < n-; i++)
{
cout << result[i] << " ";
} return ;
}
个人见解,如有错误,欢迎指正与交流!
获取更多精彩,请关注「seniusen」!
今日头条 2018 AI Camp 视频面试的更多相关文章
- 今日头条 2018 AI Camp 5 月 26 日在线笔试编程题第一道——最佳路径
题目 给定一个 n*m 的矩阵 A ,矩阵中每一个元素为一个十六进制数.寻找一条从左上角都右下角的路径,每次只能向右或者向下移动, 使得路径上所有数字之积在 16 进制下的后缀 0 最少. 输入描述: ...
- 今日头条 2018 AI Camp 6 月 2 日在线笔试编程题第一道——最大连续区间和扩展
题目 给出一个长度为 n 的数组a1.a2.....ana1.a2.....an,请找出在所有连续区间 中,区间和最大同时这个区间 0 的个数小于等于 3 个,输出这个区间和. 输入描述: 第一行一个 ...
- 今日头条 2018 AI Camp 5 月 26 日在线笔试编程题第二道——最小分割分数
题目: 给 n 个正整数 a_1,…,a_n, 将 n 个数顺序排成一列后分割成 m 段,每一段的分数被记为这段内所有数的和,该次分割的分数被记为 m 段分数的最大值.问所有分割方案中分割分数的最小值 ...
- 今日头条 2018 AI Camp 6 月 2 日在线笔试编程题第二道——两数差的和
题目 给 n 个实数 a_1, a_2 ... a_n, 要求计算这 n 个数两两之间差的绝对值下取整后的和是多少. 输入描述 第一行为一个正整数 n 和一个整数 m.接下来 n 行,第 i 行代表一 ...
- Android 高仿 频道管理----网易、今日头条、腾讯视频 (可以拖动的GridView)附源码DEMO
距离上次发布(android高仿系列)今日头条 --新闻阅读器 (二) 相关的内容已经半个月了,最近利用空闲时间,把今日头条客户端完善了下.完善的功能一个一个全部实现后,就放整个源码.开发的进度就是按 ...
- Android 高仿 频道管理----网易、今日头条、腾讯视频 (能够拖动的GridView)附源代码DEMO
距离上次公布(android高仿系列)今日头条 --新闻阅读器 (二) 相关的内容已经半个月了.近期利用空暇时间,把今日头条client完好了下.完好的功能一个一个所有实现后.就放整个源代码.开发的进 ...
- (android高仿系列)今日头条 --新闻阅读器 (三) 完结 、总结 篇
从写第一篇今日头条高仿系列开始,到现在已经过去了1个多月了,其实大体都做好了,就是迟迟没有放出来,因为我觉得,做这个东西也是有个过程的,我想把这个模仿中一步一步学习的过程,按照自己的思路写下来,在根据 ...
- 今日头条 CEO 张一鸣:面试了 2000 个年轻人,混得好的都有这 5 种特质
https://blog.csdn.net/qq_35246620/article/details/72801285 博主说:多了解了解总是好的. 正文 张一鸣算是 80 后中绝对的佼佼者.1983 ...
- 2018春招-今日头条笔试题-第四题(python)
题目描述:2018春招-今日头条笔试题5题(后附大佬答案-c++版) #-*- coding:utf-8 -*- class Magic: ''' a:用于存储数组a b:用于存储数组b num:用于 ...
随机推荐
- 我想写一个前端开发工具(一):在npm发布模块
有必要说说我为什么要开始写这个,正文从下面的第一条开始 我最近忙于公司的项目,一直没有抽出时间来写文章.本来想每个月写一片文章,保质保量,无奈上个月没有坚持. 这段时间有点忙,主要是由于公司业务调整, ...
- 课时70.id选择器和类选择器(理解)
1.id和class的区别? id相当于人的身份证不可以重复 class相当于人的名称可以重复 1.2 一个HTML标签只能绑定一个id名称 一个HTML标签可以绑定多个class名称 2.id选择器 ...
- GoBelieve IOS SDK接入备忘
项目配置 在工程target的"Build Settings"中,找到"Linking"的"Other Linker Flags",添加参数 ...
- Mysql jar包
密码cngb https://pan.baidu.com/share/init?surl=bSGA6T-LTwjx-qaNAiipCA
- element组件dialog关闭时Message消息提示抖动问题
在页面内容较多,出现滚动条时使用element组件里的dialog组件,当关闭dialog组件的同时弹出Message消息提示时,Message会抖动一下. 在页面有滚动条的情况先打开dialog时, ...
- (Linux 日常命令)[20171225]
目的:记录Linux日常所用命令 [20171222]Linux环境下查看硬件组件型号 cat /proc/cpuinfo及lspci 查看CPU [root@t-redhat- ~]# cat /p ...
- MySQL备份恢复之mysqldump
Preface The day before yesterday,there's a motif about the lock procedure when backing up My ...
- spring配置多个视图解析
<!-- 配置视图解析器 --> <bean class="org.springframework.web.servlet.view.InternalResourceVie ...
- Golang定时器断续器
定时器 1.定时器结构 结构定义 type Timer struct { C <-chan Time // 接受定时器事件的通道 r runtimeTimer } type runtimeTim ...
- Docker 运行MangoDB
1.Docker运行MangoDB镜像 #创建挂载目录 cd /opt/docker_cfg mkdir -vp mongo/db #获取mongodb镜像 [root@localhost xiaog ...