AthenaHealth 面试体验(校园内)
第 1 轮: Hakerrank – 12 个问题 – 90 分钟
10 MCQ:基于 OS、CN 和 OOPS 概念等核心主题。此外,与代码相关的问题可以预测给定代码的输出。
2个编码问题:
- 利润目标:给定一个由 n 个元素组成的数组,其中每个元素给出相应股票的年利润,从数组中找到不同对(至少一个元素不同的对)的最大数量,该数组加起来是给定的利润目标。
样本输入 1:
[1,3,46,1,3,9] , sum = 47 possible pairs are: (1,46), (46,1), (46,1), (1,46) indexes: [0][2] [2][0] [2][3] [3][2] - four times due to repetition of '1' - return only once - (46,1) Hence, output = 1
样本输入 2:
[5,7,9,13,11,6,6,3,3] sum = 12 possible pairs are: (5,7), (7,5), (9,3), (9,3), (3,9), (9,3), (6,6), (6,6) indexes: [0][1] [1][0] [2][7] [2][8] [7][2] [8][2] [5][6] [6][5] return only distinct - (5,7), (9,3), (6,6) Hence, output = 3
- 简单最大差:给定一个大小为 n 的数组,其中元素是特定股票在 n 天的收盘价,求该股票的最大利润差。利润将一天的收盘价与历史上任何前几天的收盘价之间的差价传播。如果价格保持平稳或持续下降,则返回 -1。
样本输入 1:
[7,1,2,5] 1<7 -> continue; 2>1 -> 2-1 = 1 : diff 5>2 -> 5-2 = 3 5-1 = 4 : maximum diff = output
样本输入 2:
[7,5,2,1] 5<7 , 2<5 , 1<2 -> continuously decreasing : return -1;
第 2 轮: Hakerrank CodePair 技术面试 – 60 分钟
基于项目——区块链
- 什么是区块链?
- 它有什么用处?
- 它如何确保数据的机密性和完整性
- 解释它的工作原理。
基于项目 – MEAN Stack
- 你做了什么?
- 什么是蒙哥?
- 你对非结构化数据库了解多少?
基于编程语言——C、C++、 Java
- C、C++ 和Java之间有什么区别?
- 什么是面向对象和过程语言?
- Java是真正的面向对象语言吗?是 C++ 吗?解释。
- 如果是,那么Java如何使用 int 和 char 等原始数据类型?
- 整数类和 int 数据类型有什么区别?
- 对于特定的应用程序开发,您将如何在 C++ 和Java之间进行选择
- 选择时您会关注哪些限制因素?
- 什么是指针以及如何为它们分配内存?
- 指针有什么问题——为什么在构建Java时它们被删除了?
- 面向对象的概念是什么?
- 解释封装和抽象之间的区别
- 什么是继承?
- 继承的类型有哪些?
- 我们是否需要从子类构造函数中显式调用父类构造函数?
- C++ 是否支持所有类型的继承? Java是否支持所有?
- C++中如何处理多重继承?
- 什么是方法覆盖和重载?
- 给出一个函数重载和覆盖的真实例子?
- 类中的静态变量可以被继承它的子类访问吗?
- C++ 编程中的内存架构是什么? – 关于堆、栈和代码
- 如果堆栈由于递归调用的次数而无限增加,它会覆盖堆吗?
- String 和 StringBuilder 类之间的区别? StringBuilder 有什么用?
编码问题
- 实现合并排序
- 使用抽象类显示继承
第 3 轮:人力资源 - 基本行为问题。