面试
web3.0前沿技术研究者
区块链研究员
展开
-
最小覆盖子串
给你一个字符串 S、一个字符串 T,请在字符串 S 里面找出:包含 T 所有字符的最小子串。示例:输入: S = "ADOBECODEBANC", T = "ABC"输出: "BANC"说明:如果 S 中不存这样的子串,则返回空字符串 ""。如果 S 中存在这样的子串,我们保证它是唯一的答案。class Solution {public: unordered_map <char, int> ori, cnt; bool check() {转载 2020-05-23 23:09:08 · 480 阅读 · 0 评论 -
如何测试一辆自行车
题目:如何测试一辆自行车参考答案:开放性问题,如果联系到测试角度上看的话,可以这么作答:骑车试一试,看有没有问题,对应测试能不能跑通 看看车的核心部件,例如车闸,车把等,对应软件的核心功能 看看车是否安全,配锁质量如何,对应软件是否有安全问题...转载 2019-10-21 15:14:37 · 1552 阅读 · 1 评论 -
请评估一下程序的执行结果?
题目:请评估一下程序的执行结果?public class SynchronousQueueQuiz { public static void main(String[] args) throws Exception { BlockingQueue<Integer> queue = new SynchronousQueue<>()...转载 2019-10-21 15:13:55 · 441 阅读 · 0 评论 -
假如给你一个新产品,你将从哪些方面来保障它的质量?
题目:假如给你一个新产品,你将从哪些方面来保障它的质量?参考答案:可以从代码开发、测试保障、线上质量三个方面来保障。在代码开发阶段,有单元测试、代码Review、静态代码扫描等;测试保障阶段,有功能测试、性能测试、高可用测试、稳定性测试、兼容性测试等;在线上质量方面,有灰度发布、紧急回滚、故障演练、线上监控和巡检等。...转载 2019-10-21 15:13:15 · 743 阅读 · 0 评论 -
给定一个整数数组和一个整数,返回两个数组的索引,这两个索引指向的数字的加和等于指定的整数。需要最优的算法,分析算法的空间和时间复杂度
题目:给定一个整数数组和一个整数,返回两个数组的索引,这两个索引指向的数字的加和等于指定的整数。需要最优的算法,分析算法的空间和时间复杂度参考答案:public int[] twoSum(int[] nums, int target) { if(nums==null || nums.length<2) return new int[]{0,0}; ...转载 2019-10-21 15:12:17 · 687 阅读 · 1 评论 -
如果让你来设计一个支持数据库、NOSQL 和大数据之间数据实时流动的数据流及处理的系统,你会考虑哪些问题?如何设计?
题目:如果让你来设计一个支持数据库、NOSQL 和大数据之间数据实时流动的数据流及处理的系统,你会考虑哪些问题?如何设计?参考答案:开放性问题,无标准答案。...转载 2019-10-21 15:11:21 · 526 阅读 · 0 评论 -
如果让你设计一个通用的、支持各种数据库秒级备份和恢复的系统,你会如何设计?
题目:如果让你设计一个通用的、支持各种数据库秒级备份和恢复的系统,你会如何设计?参考答案:开放性问题,无标准答案。原创 2019-10-21 15:10:16 · 460 阅读 · 2 评论 -
给定一个链表,删除链表的倒数第N个节点,并且返回链表
题目:给定一个链表,删除链表的倒数第 N 个节点,并且返回链表的头结点。◼ 示例: 给定一个链表: 1->2->3->4->5, 和 n = 2. 当删除了倒数第二个节点后,链表变为 1->2->3->5. 说明: 给定的 n 保证是有效的。 要求: 只允许对链表进行一次遍历。参考答案:我们可以使用两个指针而不是一个指针。第一个指针从列表的开头...转载 2019-10-21 14:49:18 · 1458 阅读 · 0 评论 -
最大频率栈
题目:最大频率栈。实现 FreqStack,模拟类似栈的数据结构的操作的一个类。FreqStack 有两个函数: push(int x),将整数 x 推入栈中。pop(),它移除并返回栈中出现最频繁的元素。如果最频繁的元素不只一个,则移除并返回最接近栈顶的元素。 ◼ 示例: push [5,7,5,7,4,5] pop() -> 返回 5,因为 5 是出现频率最高的。 栈变成 [5,7,...原创 2019-10-21 09:51:06 · 628 阅读 · 0 评论 -
在云计算大数据处理场景中,每天运行着成千上万的任务,每个任务都要进行 IO 读写。存储系统为了更好的服务,经常会保证高优先级的任务优先执行。当多个作业或用户访问存储系统时,如何保证优先级和公平性。
题目:在云计算大数据处理场景中,每天运行着成千上万的任务,每个任务都要进行 IO 读写。存储系统为了更好的服务,经常会保证高优先级的任务优先执行。当多个作业或用户访问存储系统时,如何保证优先级和公平性。参考答案:开放性问题,无标准答案。...转载 2019-10-21 09:49:49 · 1178 阅读 · 0 评论 -
你理解常见如阿里,和友商大数据平台的技术体系差异以及发展趋势和技术瓶颈,在存储和计算两个方面进行概述
题目: 你理解常见如阿里,和友商大数据平台的技术体系差异以及发展趋势和技术瓶颈,在存储和计算两个方面进行概述。参考答案:开放性问题,无标准答案。...转载 2019-10-21 09:48:56 · 299 阅读 · 0 评论 -
对大数据平台中的元数据管理是怎么理解的,元数据收集管理体系是怎么样的,会对大数据应用有什么样的影响
题目: 对大数据平台中的元数据管理是怎么理解的,元数据收集管理体系是怎么样的,会对大数据应用有什么样的影响。参考答案:开放性问题,无标准答案。...转载 2019-10-21 09:47:54 · 611 阅读 · 0 评论 -
请分析 MaxCompute 产品与分布式技术的关系、当前大数据计算平台类产品的市场现状和发展趋势。
题目:请分析 MaxCompute 产品与分布式技术的关系、当前大数据计算平台类产品的市场现状和发展趋势。参考答案:开放性问题,无标准答案。转载 2019-10-21 09:46:37 · 304 阅读 · 0 评论 -
一颗现代处理器,每秒大概可以执行多少条简单的MOV指令,有哪些主要的影响因素?
题目:一颗现代处理器,每秒大概可以执行多少条简单的MOV指令,有哪些主要的影响因素?参考答案:及格:每执行一条mov指令需要消耗1个时钟周期,所以每秒执行的mov指令和CPU主频相关。加分:在CPU微架构上,要考虑数据预取,乱序执行,多发射,内存stall(前端stall和后端stall)等诸多因素,因此除了cpu主频外,还和流水线上的效率(IPC)强相关,比较复杂的一个问题。...转载 2019-10-21 09:43:18 · 1446 阅读 · 0 评论 -
请计算XILINX公司VU9P芯片的算力相当于多少TOPS,给出计算过程与公式
题目:请计算XILINX公司VU9P芯片的算力相当于多少TOPS,给出计算过程与公式。参考答案:基于不同的算法,这个值在十几到几百之间。但是,如果只是单纯比算力,FPGA和ASIC、GPU相比并无太大优势,甚至大多时候有较大劣势。FPGA的优势在于高度的灵活性和算法的针对性。...转载 2019-10-21 09:41:11 · 5374 阅读 · 0 评论 -
如何判断两个链表是否相交
题目:如何判断两个链表是否相交参考答案:O(): 两层遍历,总能发现是否相交O(n): 一层遍历,遍历完两个链表,如果两个链表的最后一个结点指针相同,则相交,否则不相交问题描述问题一: 如何判断一个链表是否有环,如果有, 则返回第一个进入环的节点, 没有则返回null.问题二: 如何判断两个无环链表是否相交, 相交则返回第一个相交节点, 不相交则返回null.问题三:...原创 2019-10-18 18:08:40 · 1286 阅读 · 2 评论 -
关于并行计算的一些基础开放问题
题目: 关于并行计算的一些基础开放问题。◼ 如何定义并计算,请分别阐述分布式内存到共享内存模式行编程的区别和实现(例子代码)?◼ 请使用 MPI 和 OpenMP 分别实现 N 个处理器对 M 个变量的求和?◼ 请说明 SIMD 指令在循环中使用的权限?向量化优化有哪些手段?◼ 请用 Amdahl 定律说明什么是并行效率以及并行算法的扩展性?并说明扩展性的性能指标和限制因素,最后请...转载 2019-10-18 14:40:03 · 396 阅读 · 2 评论 -
如何实现两金额数据相加(最多小数点两位)
题目:如何实现两金额数据相加(最多小数点两位)?参考答案:其实问题并不难,就是考察候选人对 JavaScript 数据运算上的认知以及考虑问题的缜密程度,有很多坑,可以用在笔试题,如果用在面试,回答过程中还可以随机加入有很多计算机基础的延伸。回到这个问题,由于直接浮点相与加会失精,所以要转整数;(可以插入问遇到过吗?是否可以举个例子?)。转整数是第一个坑,虽然只有两位可以通过乘以1...转载 2019-10-18 14:37:33 · 904 阅读 · 1 评论 -
有一批气象观测站,现需要获取这些站点的观测数据,并存储到 Hive 中。但是气象局只提供了 api 查询,每次只能查询单个观测点。那么如果能够方便快速地获取到所有的观测点的数据?
题目:有一批气象观测站,现需要获取这些站点的观测数据,并存储到 Hive 中。但是气象局只提供了 api 查询,每次只能查询单个观测点。那么如果能够方便快速地获取到所有的观测点的数据?参考答案:A. 通过 shell 或 python 等调用 api,结果先暂存本地,最后将本地文件上传到 Hive 中。B. 通过 datax 的 httpReader 和 hdfsWriter 插件,从...转载 2019-10-18 14:33:48 · 561 阅读 · 1 评论 -
现有一批邮件需要发送给订阅顾客,且有一个集群(集群的节点数不定,会动态扩容缩容)来负责具体的邮件发送任务,如何让系统尽快地完成发送?
题目:现有一批邮件需要发送给订阅顾客,且有一个集群(集群的节点数不定,会动态扩容缩容)来负责具体的邮件发送任务,如何让系统尽快地完成发送?请详述技术方案!参考答案:A. 借助消息中间件,通过发布者订阅者模式来进行任务分配B. master-slave 部署,由 master 来分配任务C. 不借助任何中间件,且所有节点均等。通过数据库的 update-returning,从而实现节...转载 2019-10-18 14:25:00 · 479 阅读 · 0 评论 -
请解释下为什么鹿晗发布恋情的时候,微博系统会崩溃,如何解决?
题目:请解释下为什么鹿晗发布恋情的时候,微博系统会崩溃,如何解决?参考答案:A. 获取微博通过 pull 方式还是 push 方式B. 发布微博的频率要远小于阅读微博C. 流量明星的发微博,和普通博主要区分对待,比如在 sharding的时候,也要考虑这个因素...转载 2019-10-18 14:23:28 · 614 阅读 · 1 评论 -
输入 ping IP 后敲回车,发包前会发生什么?
题目:输入 ping IP 后敲回车,发包前会发生什么?参考答案:ping目标ip时,先查路由表,确定出接口如果落在直连接口子网内,此时若为以太网等多路访问网络则先查询arp缓存,命中则直接发出,否则在该接口上发arp询问目标ip的mac地址,取得后发出,若为ppp等点对点网络,则直接可以发出; 如果查表落在缺省路由上,此时若为以太网等多路访问网络则先查询网关arp缓存,...转载 2019-10-18 14:20:05 · 847 阅读 · 2 评论 -
NAS(Network Attached Storage)协议
网络附加存储(Network Attached Storage,NAS):先来看一道面试题:NFS 和 SMB 是最常见的两种 NAS(Network Attached Storage)协议,当把一个文件系统同时通过 NFS 和 SMB 协议共享给多个主机访问时,以下哪些说法是错误的:(多选)A. 不可能有这样的操作,即把一个文件系统同时通过 NFS 和 SMB协议共享给多个主机访问。...原创 2019-10-18 14:16:14 · 8929 阅读 · 1 评论 -
MySQL的数据如何恢复到任意时间点?
恢复到任意时间点以定时的做全量备份,以及备份增量的 binlog 日志为前提。恢复到任意时间点首先将全量备份恢复之后,再此基础上回放增加的 binlog 直至指定的时间点。目录redo log redo log 是啥 log 何时产生 & 释放? 如何写? 相关配置 其他binlog 记录了什么 何时产生 & 释放 区别数据更新事务流...原创 2019-10-18 11:58:50 · 3600 阅读 · 1 评论 -
从 innodb 的索引结构分析,为什么索引的 key 长度不能太长?
key 太长会导致一个页当中能够存放的 key 的数目变少,间接导致索引树的页数目变多,索引层次增加,从而影响整体查询变更的效率。一、myisam存储引擎1 . 测试的表结构信息mysql> show create table tb2Table: tb2Create Table: CREATE TABLE `tb2` (`a1` varchar(255) DEFAULT ...原创 2019-10-18 11:49:28 · 1173 阅读 · 2 评论 -
关于epoll和select的区别
问题:关于 epoll 和 select 的区别,哪些说法是正确的?(多选)A. epoll 和 select 都是 I/O 多路复用的技术,都可以实现同时监听多个 I/O 事件的状态。B. epoll 相比 select 效率更高,主要是基于其操作系统支持的I/O事件通知机制,而 select 是基于轮询机制。C. epoll 支持水平触发和边沿触发两种模式。D. select ...原创 2019-10-18 10:04:31 · 5469 阅读 · 4 评论 -
缓存算法(页面置换算法)总结
首先解释一下,缓存算法和内存页面置换算法(Page Replacement Algorithm)的核心思想是一样的,都是给定一个有限的空间,设计一个算法来更新和访问里面的数据,所以把它们放在一起讨论总结。下面提到缓存算法的同时,也指代页面置换算法。常见的缓存算法有 FIFO、Least Recently Used (LRU)、Least Frequently Used (LFU)。FIFO...原创 2019-10-17 17:58:13 · 1228 阅读 · 2 评论 -
LRU 缓存机制 设计和实现一个 LRU(最近最少使用)缓存数据结构
题目:LRU 缓存机制 设计和实现一个 LRU(最近最少使用)缓存数据结构,使它应该支持一下操作:get 和 put。 get(key) - 如果 key 存在于缓存中,则获取 key 的 value(总是正数),否则返回 -1。 put(key,value) - 如果 key 不存在,请设置或插入 value。当缓存达到其容量时,它应该在插入新项目之前使最近最少使用的项目作废。参考答案:...原创 2019-10-17 16:32:02 · 5773 阅读 · 1 评论 -
给定一个二叉搜索树(BST),找到树中第 K 小的节点
题目:给定一个二叉搜索树(BST),找到树中第 K 小的节点。* 考察点基础数据结构的理解和编码能力 递归使用* 示例 5 / \ 3 6 / \ 2 4 / 1 说明:保证输入的 K 满足 1<=K<=(节点数目)树相关的题目,第一眼就想到递归求解,左右子树分别遍历。联想到二叉搜索树的性质,r...原创 2019-10-17 16:18:31 · 1534 阅读 · 1 评论 -
已知sqrt(2)约等于1.414,要求不用数学库,求sqrt(2)精确
题目:已知 sqrt (2)约等于 1.414,要求不用数学库,求 sqrt (2)精确到小数点后 10 位。考察点基础算法的灵活应用能力(二分法学过数据结构的同学都知道,但不一定往这个方向考虑;如果学过数值计算的同学,应该还要能想到牛顿迭代法并解释清楚) 退出条件设计二分法1. 已知 sqrt(2)约等于 1.414,那么就可以在(1.4, 1.5)区间做二分查找,如:...原创 2019-10-17 15:11:54 · 883 阅读 · 1 评论 -
问题:如何实现一个高效的单向链表逆序输出?
需要考虑因素,高效应权衡多方面因素数据量是否会很大 空间是否有限制 原始链表的结构是否可以更改 时间复杂度是否有限制 一个链表节点需要输出的元素有多个,例如链表中存的是自定义对象,有多个字段1. 直接递归(简单,但O(n)空间复杂度不支持大数据量)// 直接递归实现核心代码片段public void reverse(head){ // 递归终止条件 if(head.nex...原创 2019-10-17 14:31:55 · 382 阅读 · 1 评论 -
【转】跟着动画来学习TCP三次握手和四次挥手
【转】跟着动画来学习TCP三次握手和四次挥手本文转自老钱在掘金上的分享:https://juejin.im/post/5b29d2c4e51d4558b80b1d8c跟着动画来学习TCP三次握手和四次挥手TCP三次握手和四次挥手的问题在面试中是最为常见的考点之一。很多读者都知道三次和四次,但是如果问深入一点,他们往往都无法作出准确回答。本篇尝试使用动画来对这个知识点进行讲解...原创 2019-04-18 09:33:03 · 10618 阅读 · 2 评论 -
【算法】字符串是否包含问题
在网上看到这篇文章:一次谷歌面试趣事。觉得其中的算法题以及作者的解决思路很有趣,就拿来分享一下吧。问题假设这有一个各种字母组成的字符串,假设这还有另外一个字符串,而且这个字符串里的字母数相对少一些。从算法是讲,什么方法能最快的查出所有小字符串里的字母在大字符串里都有?比如,如果是下面两个字符串:String 1: ABCDEFGHLMNOPQRSString 2: DCGSRQP...原创 2019-03-29 09:40:57 · 11270 阅读 · 0 评论