本文概述
- 关于公司:Adobe
- Adobe招聘流程
- 第一轮:网上书面回合
- 描述
- 第一轮测试图案
- A.定量和推理科
- 能力面试问题
- 1)如果房间里的灯泡每9秒钟闪烁一次, 它在一个小时的¾中会闪烁多少次?
- 2)Arjun, Ram和Vivek的年龄比例为4:7:9。如果9年前他们的年龄总和是53岁, 那么他们现在的年龄是多少?
- 3)如果办公室员工的平均年龄为40岁, 并且有120名新员工加入公司, 而该公司的平均年龄为32岁。因此, 所有员工的平均年龄降低了4岁。那么, 现在公司的员工总数是多少?
- 4)找到最大的4位数字, 该数字可以被88整除吗?
- 5)计算前五个质数之和?
- 6)仅” A”字就能在2天内完成工作的1/4。仅” B”字就能在4天内完成工作的2/3。如果三个工人一起工作, 他们可以在3天内完成工作, 那么仅” C”将在2天内完成工作的哪一部分?
- 7)有一天, 拉维开始从家中提早30分钟到达家中, 并迟到了50分钟才到达办公室, 同时开车速度比平时慢了25%。拉维通常需要多少时间才能在家中到达办公室?
- 8)一位店主以卢比的价格出售一张桌子。 840的收益为20%, 另一张表格为卢比。 960亏损4%。他的总收益或损失是多少?
- 9)如果在圆锥形帐篷中, 可以容纳10人。每个人必须拥有6平方米的空间站立和呼吸30立方米的空气。圆锥的高度是多少?
- 10)A可以在10天内完成一件工作, B可以在12天内完成相同的工作, 而Ravi在15天内可以完成相同的工作。他们都一起开始工作, 但是A在工作完成2天后离开, B在工作完成3天后离开。查找完成工作的日期。
- 推理问题
- 1)如果MADRAS可以编码为NBESBT, 那么我们如何编码BOMBAY?
- 2)这是系列中的下一项:3、4、6、9、13, _______
- 3)如果w, x, y z是整数。有一个条件, 表达式x-y-z为偶数, 表达式y-z-w为奇数。如果x甚至必须为真?
- 4)BXF, DVI, FTL, HRO, _____系列的下一个术语是什么
- 5)如果使用某种代码语言,
- 6)如果胜利与竞争有关, 那么发明与之有关。
- 7)拉胡尔对阿卡什说:”那个踢足球的男孩是我父亲妻子的女儿的两个兄弟中的较小者。”这个踢足球的男孩和拉胡尔有什么关系?
- 8)山姆介绍里娅后说:”她是我母亲唯一兄弟的唯一侄子的妻子。” Riya与Sam有何关系?
- 9)工程师:Map :: Bricklayer :?找到这个词。
- 10)从以下选项中找出奇数词
- B:技术MCQ示例
- 1)以下内容的输出是什么
- 2)在C语言中, 参数始终为_______
- 3)查找以下代码的输出
- 4)以下语句的用途是什么?
- 5)查找以下代码的输出。
- 6)使用三个未标记的节点可以形成的最大二叉树数量是多少?
- 7)具有3个节点的结构上不同的可能二叉树的总数是多少?
- 8)可以使用哪种排序算法对时间最短的随机链表进行排序?
- 9)计算以下代码的输出
- 10)计算以下代码的输出
- 编码问题
- 1)编写代码以反向链接列表?
- 2)编写一个代码, 使用最小的加法数将两个数字相乘。
- 3)写一个交换两个整数指针的程序?
- 4)编写一个程序来计算斐波那契数列的第n个项?
- 5)编写一个程序来计算一个数字中的总置位数?
- 6)编写算法来计算X ^ N的输出, 其复杂度为log n。
- 7)编写代码以检查二进制树是否是BST树?
- 8)编写代码以从列表的末尾查找第n个元素?
- 技术回合面试问题
- 技术首轮
- 1)区分typedef和#define?
- 2)为什么我们使用sprint()函数?
- 3)如何区分char a [] =?String和char * a =?String。
- 4)解释数据断点?我们在哪里可以使用?
- 5)区分new和malloc()?
- 6)区分进程和线程?
- 7)什么是C ++速记属性?它的作用是什么?
- 8)通过函数原型的声明和定义, 你了解什么?
- 9)你对条件运算符了解什么?
- 10)C语言中的volatile关键字是什么?
- 11)你对OS有什么了解?用最简单的方式解释。
- 12)为什么我们在C和C ++中使用指针?
- 13)区分指针调用和引用调用?
- 14)你对calloc()和malloc()有什么了解?
- 15)解释”虚拟机”一词吗?
- 16)你对同步有什么了解?
- 17)解释Mutex吗?什么是读写器问题?
- 18)为什么要使用void关键字?
- 19)解释退出受控循环?
- 20)什么是DNS服务器?
- 技术第二轮
- 1)TCP / IP模型中的不同层是什么?解释每一层的协议?
- 2)解释调用函数时堆栈的工作情况?什么时候发生堆栈溢出?
- 3)解释声明的含义:int * const p&const int * const p?
- 4)什么是C ++中的默认函数
- 5)字典使用哪种数据结构?
- 6)如何从一个字符串中也有重复的单词中找到一个唯一的单词?
- 技术性第三轮或导演轮
- 1)为河内塔写一个算法?
- 2)编写代码以在”链表”列表中找到循环?你将如何删除此循环?
- 3)你将如何设计Excel电子表格的数据结构?
- 4)解释OS中的内存保护。
- 5)什么是OS中的虚拟内存?
- 6)编写算法以将元素插入到已排序的链表中?
- 7)找到总和等于给定数的一对元素?
- 也可以要求候选人提出以下问题
- 人力资源回合
- 1)简要介绍一下自己?
- 2)为什么要加入Adobe?
- 3)你拥有什么技能, 以便我们雇用你?
- 4)你梦想中的公司是哪家?
- 5)谈谈你的家庭背景吗?
- 6)十年后, 你想在哪里看到自己?
- 7)你独特和不同的品质是什么, 这使你成为该公司最合适的员工?
- 8)你认为你是一个目标导向的人吗?
- 9)你最大的优点和缺点是什么?
关于公司:Adobe
Adobe Systems Incorporated, 也称为Adobe, 是美国计算机软件的跨国公司。 Adobe总部位于美国加利福尼亚州圣何塞, 在全球共有17000名员工(2017年)。 Adobe由John Warnock和Charles Geschke于1982年12月成立。Adobe的成立主要是为了开发和销售PostScript页面描述语言。公司提供各种创意软件产品和服务, 供专业人士, 应用程序开发商, 企业和消费者使用。 Adobe以Photoshop, Acrobat Reader, 便携式文档格式(PDF), Adobe Creative Suite和Adobe Creative Cloud而闻名。 Adobe主要关注三个领域, 分别是数字媒体, 数字营销以及印刷和出版。 Adobe是工作最出色的公司之一, 并且在2003年被评为美国最佳公司第5名。Adobe在2018年被Interbrand评为”全球最佳品牌”第51位。
Adobe的关键人物:
首席执行官兼董事长:Shantanu Narayen
首席财务官:John F Murphy
CTO:Abhay Parasnis
Adobe招聘流程
Adobe招聘过程是困难的招聘过程之一。 Adobe非常仔细地选择候选人, 并进行了大量筛选以选择所有候选人中的最佳人才。 Adobe的招聘过程也与其他公司不同, 因为面试需要5到6轮。以下是招聘过程的主要步骤。
- 在线书面回合
- 小组讨论
- 多轮技术面试
- 导演轮
- 人力资源回合
学术标准:
- X和XII中65%, 毕业或CGPA 7中70%。
- 申请时没有积压。
第一轮:网上书面回合
描述
第一轮将是在线考试, 主要包括两个部分。第一部分将基于基本能力和推理。第二部分将包含基于C / C ++ / JAVA输出的MCQ问题和主观的编码问题。此回合是在Hackerrank平台上组织的, 候选人可以在其中使用任何首选语言(C, C ++或Java)进行编码。此轮的第一部分将是完成招聘过程中最舒适的一轮, 但需要有一个良好的速度来完成。
第一轮测试图案
Sections | 持续时间 | 问题数 | Topics |
---|---|---|---|
15 min | 15个问题 | 量化智能算术代数时间和工作盈亏几何速度和距离百分比 | |
30分钟 | 30个问题 | 逻辑推理难题数据解释血缘关系等 | |
75-120 min | 15-20 Questions | C语言数据结构位处理 |
A.定量和推理科
- 招聘过程的量化能力部分相对容易, 但是候选人需要具备基本的知识并且必须具有良好的速度。没有负面的标记。
- 分析部分包含一些棘手的问题, 这些问题可能会占用更多时间, 因此在尝试这些部分时请务必小心。
样本能力倾向问题及其答案为第一轮做准备:
能力面试问题
1)如果房间里的灯泡每9秒钟闪烁一次, 它在一个小时的¾中会闪烁多少次?
- 301
- 300
- 250
- 401
显示答案
答:一个
说明:
灯泡每9秒闪烁一次。
¾小时=¾* 60 = 45分钟
45分钟= 45 * 60 = 2700秒
因此, 光将在¾小时内闪烁= 2700/9 = 300次
但是计数在第一次闪烁后开始, 因此总时间= 300 + 1 = 301
2)Arjun, Ram和Vivek的年龄比例为4:7:9。如果9年前他们的年龄总和是53岁, 那么他们现在的年龄是多少?
- 16, 28, 36
- 8, 20, 28
- 20, 35, 45
- 以上都不是
显示答案
答:一个
说明:Arjun, Ram和Vivek的年龄比例为4:7:9
令, Arjun的当前年龄= 4倍
拉姆的现龄= 7倍
Vivek的当前年龄= 9倍
根据问题
(4x-9)+(7x-9)+(9x-9)= 53
20x-27 = 53
X = 4
因此Arjun = 16, Ram = 28和Vivek = 36的现年年龄
3)如果办公室员工的平均年龄为40岁, 并且有120名新员工加入公司, 而该公司的平均年龄为32岁。因此, 所有员工的平均年龄降低了4岁。那么, 现在公司的员工总数是多少?
- 1200
- 120
- 360
- 240
显示答案
答案:d
说明:
设x为初始员工总数
员工的最初平均年龄= 40岁
(员工的初始总年龄)/ x = 40
员工初始总年龄= 40倍
120名员工的总年龄= 32 * 120
根据问题:
平均年龄减少了4岁, 因此
(40x + 32 * 120)/(x + 120)=(40-4)
(40x + 3840)= 36 *(x + 120)
4倍= 4320-3840
X = 120
因此, 现在公司的员工总数= 120 + 120 = 240
4)找到最大的4位数字, 该数字可以被88整除吗?
- 9768
- 9988
- 9944
- 8888
显示答案
答案:c
说明:
最大的4位数字= 9999
9999/88 =余数= 55
所以新的数字将是= 9999-55 = 9944
它将被88完全整除;因此, 最大的数字将是9944
5)计算前五个质数之和?
- 11
- 18
- 26
- 28
显示答案
答案:d
说明:
所需的五个素数之和=(2+ 3 + 5 + 7 + 11)= 28
6)仅” A”字就能在2天内完成工作的1/4。仅” B”字就能在4天内完成工作的2/3。如果三个工人一起工作, 他们可以在3天内完成工作, 那么仅” C”将在2天内完成工作的哪一部分?
- 1/12
- 1/8
- 1/16
- 1/20
显示答案
答:一个
说明:
让我们用C = x的一天来工作
A的1天工作= 1/8
B的1天工作= 1/6
根据问题:
1/8 + 1/6 + x = 1/3
通过求解方程式:
x = 1/24
如果x是
1天工作= 1/24
因此, 两天的工作量为c = 1/12
7)有一天, 拉维开始从家中提早30分钟到达家中, 并迟到了50分钟才到达办公室, 同时开车速度比平时慢了25%。拉维通常需要多少时间才能在家中到达办公室?
- 20分钟
- 80分钟
- 60分钟
- 40分钟
显示答案
答案:c
说明:
假设t是从家到办公室的通常时间, 通常时间和速度时间= t, 速度= s
延迟时间和速度较慢速度降低25%= 3 / 4s, 时间= t + 20
D = s * t
D =(3秒/ 4)*(t + 20)
S * t =(3s / 4)*(t + 20)
4吨= 3吨+ 60
t = 60分钟。
8)一位店主以卢比的价格出售一张桌子。 840的收益为20%, 另一张表格为卢比。 960亏损4%。他的总收益或损失是多少?
- 收益提高100/17%
- 损失100/17%
- 增益20/3%
- 没有一个
显示答案
答:一个
说明:
1张桌子的成本价格=(100 * 840)/(100 + 20)= 700
2张桌子的成本价格=(100 * 960)/(100-4)= 1000
表的总成本价格= 1000 + 700 = 1700
总售价= 840 + 960 = 1800
收益=售价-成本价
增益= 1800-1700 = 100
增益%=(100 * 100)/ 1700
增益%= 100/17
9)如果在圆锥形帐篷中, 可以容纳10人。每个人必须拥有6平方米的空间站立和呼吸30立方米的空气。圆锥的高度是多少?
- 15m
- 37.5m
- 75m
- 150m
显示答案
答案:30m
说明:
如果, 1人占用的空间= 6平方米
10人占用的空间= 60平方米。米
因此, 圆锥形帐篷的底面积= pi * r * r = 60
因为每个人都需要呼吸空气= 30立方米
10个人需要空气到广度= 300立方米
因此, 圆锥形帐篷的体积(1/3)* pi * r * r * h = 600
20 * h = 600
h = 30m
10)A可以在10天内完成一件工作, B可以在12天内完成相同的工作, 而Ravi在15天内可以完成相同的工作。他们都一起开始工作, 但是A在工作完成2天后离开, B在工作完成3天后离开。查找完成工作的日期。
- 6天
- 5天
- 9天
- 7天
显示答案
答案:d
说明:
工作完成者:
A在10天之内, B在12天之内, C在15天之内,
完成的总工作量=(10, 12, 15)的L.C.M = 60单位
因此, A可以在1天内完成6个工作单元, B可以完成5个工作单元, C可以完成4个工作单元
根据问题, 完成x天的剩余工作, 然后
(6 + 5 + 4)* 2 +(5 + 4)*(x-3)+(4 * 3)= 60单位
解决之后
30+ 9(x-3)+ 12 = 60
X = 5天
因此, 所需的总天数= 5 + 2 = 7天。
推理问题
1)如果MADRAS可以编码为NBESBT, 那么我们如何编码BOMBAY?
- 重庆市
- CPOCBZ
- 中国人民银行
- CPNCPX
显示答案
答案:C
说明:
M A D R A S <=========> N B E S B T
每个字母都等同于下一个字母, 因此M代表N, A代表B, D代表E, 依此类推。
因此
B O M B A Y可以写成C P N C B Z
2)这是系列中的下一项:3、4、6、9、13, _______
- 16
- 15
- 18
- 17
显示答案
答案:c
说明:
如给定序列中的3, (3 + 1 = 4), (4 + 2 = 6), (6 + 3 = 9), (9 + 4 = 13), 所以(13 + 5 = 18)因此学期将是18
3)如果w, x, y z是整数。有一个条件, 表达式x-y-z为偶数, 表达式y-z-w为奇数。如果x甚至必须为真?
- 我一定很奇怪
- y-z必须是奇数
- z必须是偶数
- z必须是奇数
显示答案
答:一个
说明:
由于x是偶数, 因此x-y-z必须为偶数, 即使y和z都为奇数, 而y-z-w必须为奇数, 而w必须为奇数
4)BXF, DVI, FTL, HRO, _____系列的下一个术语是什么
- 联合警察
- KPL
- 良好
- 没有一个
显示答案
答案:d
说明:
如给定系列
B X F, D V I, F T L, H R O
对于第一个字母,
B-C-D, D-E-F, F-G-H, H-I-J
2个字母
X-W-V, V-U-T, T-S-R, R-Q-P
3个字母
F-G-H-I, I-J-K-1, L-M-N-O, O-P-Q-R所以下一项应该是JPR, 所以答案都不是, 因此下一个系列是-JPR
5)如果使用某种代码语言,
一世。 Guda buka意味着清澈的水
ii。 Pin gola意味着阴云密布的天空
iii。 Pin saf buka意味着湛蓝的天空
那么, 以下哪个词表示BLUE?
- 开门
- 纯
- 一样的
- Pin
显示答案
答案:b
说明:
通过1和2和3陈述, 发现buka表示晴朗, pin表示天空, 因此saf表示蓝色。
6)如果胜利与竞争有关, 那么发明与之有关。
- 实验
- 发现
- 实验室
- 试用版
显示答案
答:一个
7)拉胡尔对阿卡什说:”那个踢足球的男孩是我父亲妻子的女儿的两个兄弟中的较小者。”这个踢足球的男孩和拉胡尔有什么关系?
- 他的
- 哥哥
- 长者的意思是铁则
- 表姐
显示答案
答案:b
说明:
我父亲的妻子=拉胡尔的母亲
我父亲妻子的女儿=拉胡尔的姐姐
两兄弟中的小者=拉胡尔的b兄弟。
8)山姆介绍里娅后说:”她是我母亲唯一兄弟的唯一侄子的妻子。” Riya与Sam有何关系?
- 妻子
- 嫂子
- 妹妹
- 资料不足
显示答案
答:一个
说明:
我母亲的唯一兄弟=山姆的叔叔
唯一侄子的妻子=山姆的妻子
因此, Riya是Sams的妻子。
9)工程师:Map :: Bricklayer :?找到这个词。
- 模板
- 模子
- 水泥
- 设计
显示答案
答:一个
10)从以下选项中找出奇数词
- 方向盘
- 他们的
- 汽车
- 发动机
显示答案
答案:c
说明:
在选项中, 方向盘, 轮胎和发动机都是汽车的一部分。
B:技术MCQ示例
第一轮的第二部分是技术MCQ和编码部分。这部分很难破解。它需要彻底研究数据结构, C, 位操作和算法的概念。有一些样本问题可供Adobe面试, 并附有答案。
1)以下内容的输出是什么
int main()
{
你我;
int arr [5] = {5};
对于(i = 0; i <5; i ++)
printf(“%d”, arr [i]);
返回0;
}
- 0 0 0 0 0
- 5 0 0 0 0
- 5 5 5 5 5
- 错误
显示答案
答案:b
2)在C语言中, 参数始终为_______
- 通过参考
- 通过值结果
- 价值传递
- 指针变量通过引用传递, 非指针变量通过值传递
显示答案
答案:c
3)查找以下代码的输出
#include <stdio.h>
int main()
{
printf(“%d”, main);
返回0;
}
- 编译时间错误
- 主要功能地址
- 0
- 任何随机值
显示答案
答案:b
4)以下语句的用途是什么?
scanf(“%3s”, str);
- 最多读取3个字符
- 从控制台读取3个字符
- 取字符串str为3的倍数
- 以上都不是。
显示答案
答:一个
5)查找以下代码的输出。
字符p [10];
char * s =”计算机”;
int length = strlen(s);
你我;
对于(i = 0; i <length; i ++)
p [i] = s [length-i];
printf(“%s”, p)
- retupmoc
- 电脑
- 空值
- 没有输出将打印
显示答案
答案:d
6)使用三个未标记的节点可以形成的最大二叉树数量是多少?
- 1
- 4
- 6
- 5
显示答案
答案:d
7)具有3个节点的结构上不同的可能二叉树的总数是多少?
- 10
- 5
- 168
- 245
显示答案
答案:b
说明:
结构上可能的树数=!2N /(!N *(!(N + 1))
其中n =节点数, 因此N = 3,
答案将是5。
8)可以使用哪种排序算法对时间最短的随机链表进行排序?
- 快速排序
- 进行排序
- 插入排序
- 堆排序
显示答案
答案:b
9)计算以下代码的输出
#include <stdio.h>
结构体
{
int x;
静态整数
};
int main()
{
printf(“%d”, sizeof(struct st));
返回0;
}
- 8
- 4
- 编译时间错误
- 运行时错误
显示答案
答案:c
说明:
在C语言中, 我们不能在struct和unions类型内包含静态成员, 因此此程序将生成编译时错误。
10)计算以下代码的输出
#include <stdio.h>
int main()
{
int arr [] = {5, 8, 10, 12, 18};
INT * P = ARR;
++ * p;
p + = 3;
printf(“%d”, * p);
返回0;
}
- 10
- 12
- 18
- 无输出。
显示答案
答案:b
编码问题
这部分是一轮编码, 其中应试者需要使用任何首选语言(C / C ++ / Java)为给定问题编写代码。下面给出一些编码问题以供练习。
1)编写代码以反向链接列表?
#include<stdio.h>
#include<stdlib.h>
struct Node
{
int data;
struct Node* next;
};
/* Function for reversing the linked list */
static void reverseList(struct Node** head_ref)
{
struct Node* t2 = NULL;
struct Node* start = *head_ref;
struct Node* t1 = NULL;
while (start != NULL)
{
t1 = start->next;
start->next = t2;
t2 = start;
start = t1;
}
*head_ref = t2;
}
void newNode(struct Node** head_ref, int new_data)
{
struct Node* new_node =
(struct Node*) malloc(sizeof(struct Node));
new_node->data = new_data;
new_node->next = (*head_ref);
(*head_ref) = new_node;
}
/* Function to print linked list */
void printList(struct Node *head)
{
struct Node *temp = head;
while(temp != NULL)
{
printf("%d ", temp->data);
temp = temp->next;
}
}
int main()
{
struct Node* head = NULL;
newNode(&head, 20);
newNode(&head, 14);
newNode(&head, 30);
newNode(&head, 68);
printf("Input linked list\n");
printList(head);
reverseList(&head);
printf("\nReversed Linked list \n");
printList(head);
}
输出
Input linked list
68 30 14 20
Reversed Linked list
20 14 30 68
2)编写一个代码, 使用最小的加法数将两个数字相乘。
#include<stdio.h>
int main()
{
int product=0, x, y, n;
x=10;
y= 20;
for(n = 0; n < y; n++)
{
product = product + x;
}
printf("\n The product of %d and %d: %d\n", x, y, product);
return 0;
}
}
输出
The product of 10 and 20: 200
3)写一个交换两个整数指针的程序?
#include<stdio.h>
int main()
{
int *a, *b, *temp, x=20, y=30;
a=&x;
b=&y;
printf("Before swap %d %d", *a, *b);
*temp= *a;
*a=*b;
*b= *temp;
printf("\n After swap %d %d", *a, *b);
return 0;
}
输出
Before swap 20 30
After swap 30 20
4)编写一个程序来计算斐波那契数列的第n个项?
#include<stdio.h>
int fun(int n)
{
if (n <= 1)
return n;
else
return fun(n-1) + fun(n-2);
}
int main(){
int n1=0, n2=1, n3=0, n=7;
printf("The series is %d %d", n1, n2);
for(int i=2; i<=n; i++){
n3=n1+n2;
printf(" %d", n3);
n1=n2;
n2=n3;
}
printf("\nThe nth term is %d", fun(n));
}
输出
The series is 0 1 1 2 3 5 8 13
The nth term is 13
5)编写一个程序来计算一个数字中的总置位数?
#include <stdio.h>
int main() {
int n=15, count_zerobit= 0, count_onebit=0, total_bits=0;
while(n>0){
if(n%2==0)
count_zerobit=count_zerobit+1;
else
count_onebit=count_onebit+1;
n=n>>1;
}
total_bits=count_onebit+count_zerobit;
printf("Total bits are=%d Total zero bits are=%d Total one's bits are= %d", total_bits, count_zerobit, count_onebit);
}
输出
Total bits are=4 Total zero bits are=0 Total one's bits are= 4
6)编写算法来计算X ^ N的输出, 其复杂度为log n。
#include<stdio.h>
int pow(int x, int n)
{
int y;
if( n == 0)
return 1;
y = pow(x, n/2);
if (n%2 == 0)
return y*y;
else
return x*y*y;
}
int main()
{
int x = 6;
int n = 3;
printf("The output for x^n, where x=%d, n=%d, %d", x, n, pow(x, n));
return 0;
}
输出
The output for x^n, where x=6, n=3, 216
7)编写代码以检查二进制树是否是BST树?
public class CheckBST {
public static Node prevNode = null;
//Method1:
public boolean isBST1(Node root) {
if (root != null) {
if (!isBST1(root.left))
return false;
if (prevNode != null && prevNode.data >= root.data) {
return false;
}
prevNode = root;
return isBST1(root.right);
}
return true;
}
//method 2
public boolean isBST2(Node root, int min, int max) {
if (root != null) {
if (root.data > max || root.data < min) {
return false;
}
return isBST2(root.left, min, root.data)
&& isBST2(root.right, root.data, max);
} else {
return true;
}
}
public void inorder(Node root) {
if (root != null) {
inorder(root.left);
System.out.print(" " + root.data);
inorder(root.right);
}
}
public static void main(String args[]) {
CheckBST cb = new CheckBST();
Node root = new Node(7);
root.left = new Node(3);
root.right = new Node(9);
root.left.left = new Node(1);
root.left.right = new Node(4);
root.right.left = new Node(8);
root.right.right = new Node(10);
System.out.println("Input Tree is ");
cb.inorder(root);
System.out.println();
System.out.println("Tree is BST or not : " + cb.isBST1(root));
System.out.println("Tree is BST or not : "
+ cb.isBST2(root, Integer.MIN_VALUE, Integer.MAX_VALUE));
root.left.right.right = new Node(20);
System.out.println("Input Tree is ");
cb.inorder(root);
System.out.println();
System.out.println("Tree is BST or not: " + cb.isBST1(root));
System.out.println("Tree is BST or not : "
+ cb.isBST2(root, Integer.MIN_VALUE, Integer.MAX_VALUE));
}
}
class Node {
int data;
Node left;
Node right;
public Node(int data) {
this.data = data;
left = null;
right = null;
}
}
输出
Input Tree is
1 3 4 7 8 9 10
Tree is BST or not: true
Tree is BST or not: true
Input Tree is
1 3 4 20 7 8 9 10
Tree is BST or not: false
Tree is BST or not: false
8)编写代码以从列表的末尾查找第n个元素?
public class ListElement{
Node head;
static class Node {
int value;
Node next;
Node(int value) {
this.value = value;
}
}
public void addToList(Node node) {
if (head == null) {
head = node;
} else {
Node temp = head;
while (temp.next != null)
temp = temp.next;
temp.next = node;
}
}
public void printList() {
Node temp = head;
while (temp != null) {
System.out.format("%d ", temp.value);
temp = temp.next;
}
System.out.println();
}
public Node nthFromLastNode(Node head, int n)
{
Node firstPtr=head;
Node secondPtr=head;
for (int i = 0; i < n; i++) {
firstPtr=firstPtr.next;
}
while(firstPtr!=null)
{
firstPtr=firstPtr.next;
secondPtr=secondPtr.next;
}
return secondPtr;
}
public static void main(String[] args) {
ListElement li = new ListElement();
// Creating a linked list
Node head=new Node(18);
li.addToList(head);
li.addToList(new Node(20));
li.addToList(new Node(30));
li.addToList(new Node(15));
li.addToList(new Node(10));
li.addToList(new Node(16));
li.printList();
Node nthNodeFromLast= li.nthFromLastNode(head, 4);
System.out.println("4th node from end is :"+ nthNodeFromLast.value);
}
}
输出
18 20 30 15 10 16
4th node from end is: 30
技术回合面试问题
这是Adobe面试过程的第三轮。它包含各种回合。在这一轮中, 将对候选人的技术技能进行检查。如果候选人通过了一个回合, 那么他/她可以继续下一回合。
技术首轮
1)区分typedef和#define?
typedef和#define之间的主要区别如下:
- typedef用于定义类型或为类型赋予新名称, 而#define是预处理器指令, 用于定义宏。
- typedef将实际定义赋予新的数据类型, 而#define仅用于将值定义复制粘贴到使用它的位置。
- typedef是编译器已知的, 但#define仅是预处理器已知的。
例:
#include <stdio.h>
typedef int CHAR;
#define AP "Andhra Pradesh"
int main()
{
CHAR a, b;
a = 10;
printf("%d\n""%s" , a, AP);
return 0;
}
输出
10
Andhra Pradesh
2)为什么我们使用sprint()函数?
sprint()是一个C库函数, 称为”字符串打印”。 sprintf函数用于将格式化的数据输出保存为String。
语法
int sprintf (char *string, const char *form, .... )
例:
#include<stdio.h>
int main()
{
char string[50];
int a = 10, b = 5, c;
c = a * b;
sprintf(string, "multiplication of %d and %d is %d", a, b, c);
printf("%s", string);
return 0;
}
输出
multiplication of 10 and 5 is 2
3)如何区分char a [] =?String和char * a =?String。
声明:
- 字符a [] =”计算机”;
- char * a =”计算机”;
上面两个语句之间的区别在于, 第一个语句将创建一个由9个元素组成的数组, 该数组将自动添加空指针, 而数组” a”的大小将为9。
但是第二条语句将创建一个指针变量。我们无法对此指针变量执行任何数组操作, 因为它将以只读模式存储。
例:
#include <stdio.h>
int main()
{
char a[] = "Computer";
printf("%lu", sizeof(a));
a[1] = 'n';
printf("\n%s", a);
return 0;
}
输出
9
Cnmputer
例子2
#include <stdio.h>
int main()
{
char *a = "Computer";
printf("%lu", sizeof(a));
return 0;
}
4)解释数据断点?我们在哪里可以使用?
数据断点是C ++的一项强大功能, 当存储在特定内存位置的值发生更改时, 它可使我们停止执行。数据断点可用于解决内存损坏问题。
5)区分new和malloc()?
new和malloc()都用于动态内存分配。但是new和malloc之间存在各种差异, 如下所示:
- new是C语言的运算符, 而malloc()是用于内存分配的函数。
- new运算符调用构造函数, 而malloc()不调用构造函数。
- 新操作员从”空闲存储”中分配的内存, 而malloc()函数从堆中分配的内存。
- 执行失败时, new运算符将引发异常, 而malloc()返回Null。
- new运算符不需要sizeof()运算符, malloc()函数需要sizeof()运算符才能知道内存大小。
6)区分进程和线程?
以下是进程和线程之间的基本区别:
- 进程是程序的执行, 而线程是轻量级进程。
- 进程不像内存那样共享资源, 而线程可以共享资源。
- 该进程需要花费更多时间进行上下文切换, 而线程需要更少的时间进行上下文切换。
- 与线程相比, 该进程的效率较低。
7)什么是C ++速记属性?它的作用是什么?
C ++提供了简写属性, 使程序员能够以较短的方式使用赋值运算符。
例:
x = x + 5;可以用简写写成x + = 5
x = x-10;可以写成x- = 10;
8)通过函数原型的声明和定义, 你了解什么?
函数原型声明:函数原型声明语句提供有关函数的以下信息:
- 它告诉函数的符号名称。
- 有关函数返回类型的信息。
- 有关作为参数传递的参数的信息及其数据类型。
例:
int add(int a, int b, int c)
其中add是函数的名称, a, b和c是传递的参数。
函数定义:函数定义是函数的实际源代码。函数定义提供了该函数实际功能的信息。
例:
int add(int a, int b, int c){<br>
c= a + b;
return c;
}
9)你对条件运算符了解什么?
- 条件运算符是具有三个操作数的三元运算符, 它们用作if-else语句的简写形式。
- 如果条件为true, 条件运算符将返回第一个表达式, 如果条件为false, 则返回第二个表达式。
语法
(Check expression)? Expression1: Expression2;
例:
var = (x < 10) ? 20 : 40;
10)C语言中的volatile关键字是什么?
volatile关键字是一个限定符, 在声明时与变量一起使用。
它向编译器提供了一个信息, 即变量的值在任何时候都可以更改, 即使它似乎没有被修改。
易失性关键字用于将变量声明为易失性变量。可以在数据类型之前或之后使用它。
语法
volatile int x; or int volatile x;
11)你对OS有什么了解?用最简单的方式解释。
- 操作系统是一个程序, 它是用户和硬件之间的接口
- 它在加载后通过引导程序管理计算机中的所有其他程序。
- 操作系统充当计算机或移动设备的骨干。
- 操作系统的示例是UNIX, LINUX, MS-Windows, MAC-OS等。
12)为什么我们在C和C ++中使用指针?
指针是存储C和C ++中另一个变量的地址的变量。
以下是为什么我们在C和C ++中使用指针的主要原因:
- 指针可用于动态内存分配。
- 指针有助于执行数组算术和访问数组元素。
- 指针有助于创建API。
- 在数据结构的实现中使用指针。
- 指针有利于通过引用传递。
13)区分指针调用和引用调用?
在C ++语言中, 我们可以通过引用或指针将参数传递给函数, 两者都是正确的方法且完全相同, 但是两者之间的基本区别是:
- 我们可以直接将指针分配为空指针, 但是不能通过引用来完成。
- 我们可以重新分配一个指针, 但是引用不能重新分配。
14)你对calloc()和malloc()有什么了解?
在C语言中, calloc()和malloc()是库函数, 并且都用于动态内存分配。这意味着它将在运行时根据堆部分中的要求分配内存。
malloc():malloc()函数是一个库函数, 它分配一个所请求的内存块并返回一个指向其无效的指针, 该指针可以转换为任何返回类型。如果没有足够的内存, 它将返回空值。
语法
ptr=(cast-type*)malloc(byte-size)
calloc():calloc()函数也是一个库函数, 用于分配请求大小的多个内存块。它最初将内存初始化为零, 如果内存不足, 则返回NULL。
语法
ptr=(cast-type*)calloc(number, byte-size)
15)解释”虚拟机”一词吗?
虚拟机是一个行为类似于单独计算机的软件程序。它的工作原理与主计算机相同, 并且能够运行应用程序和其他程序。在称为主机的主机中创建了一个称为guest虚拟机的虚拟机。根据其用途, 有两种类型的虚拟机。
- 系统虚拟机
- 处理虚拟机
16)你对同步有什么了解?
同步是同时执行两件事的过程。
同步有两种类型:
- 进程或线程同步
- 数据同步
进程同步:进程/线程同步是一种控制两个并发线程之间共享资源访问的机制。它确保两个并发线程不会同时共享同一资源。同步处理诸如死锁, 饥饿, 等待繁忙等问题。
数据同步:数据同步是一种确保两个设备之间数据完整性的技术。借助数据同步, 它可以将单个数据的多个副本保存在不同的位置。它包括文件同步, 日记, Raid等。
17)解释Mutex吗?什么是读写器问题?
互斥体:
- 在多线程中, Mutex(互斥对象)是一个程序对象, 它为线程提供锁定机制。
- Mutex确保两个或多个线程之间正确的线程同步。一次只能有一个线程可以执行程序或资源。
读写器问题:
在OS中, 一种情况称为特定共享数据区域的读写器问题, 其中包括:
- 可以从该共享区域读取任意数量的阅读器, 但一次只能写入一个作者。
- 当一个作者在特定区域中书写时, 没有其他进程可以访问该区域。
- 如果在该共享区域中有非零读者, 则writer不能在其中写入。
此问题通常发生在并发或多线程中。
18)为什么要使用void关键字?
我们可以将void关键字用于两个目的:
函数参数:当我们使用void作为函数参数时, 表示函数不接受任何值。
例:
int showMessage(void){
}
函数返回类型:当我们将void用作函数返回类型时, 表示将不返回任何内容。
例:
void showMessage() {
}
void关键字也可以与指针一起使用, 这使其功能更强大, 因为当void与指针一起使用时, 它被称为泛型类型, 可以容纳任何类型的地址。
19)解释退出受控循环?
出口控制循环是一种循环类型, 它首先执行指令, 然后检查条件。当我们使用退出控制循环时, 即使条件为假, 至少也会执行一次。 do-while循环是退出控制循环的一个示例。
#include <stdio.h>
int main() {
int x = 10;
do{
printf("\n the value of x is %d", x);
x - -;
}
while(x>=5);
return 0;
}
Output:
the value of x is 10
the value of x is 9
the value of x is 8
the value of x is 7
the value of x is 6
the value of x is 5
20)什么是DNS服务器?
DNS服务器是DNS(域名系统)基础结构的主要部分。它是一台计算机服务器, 用于存储和管理IP地址及其各自的主机名的数据库。
DNS服务器也称为名称服务器, 用于将域名映射到相应的IP地址。
单个域名可以具有多个IP, 这意味着IP地址可以随时间变化。
技术第二轮
1)TCP / IP模型中的不同层是什么?解释每一层的协议?
TCP / IP模型被称为传输控制协议/ Internet协议。 TCP / IP模型是OSI模型的实用且简洁的版本。当前的网络体系结构取决于TCP / IP模型。它主要包括四层:
- 应用层
- 传输层/主机到主机层
- 网络层
- 链路层/网络访问层
1.链接层:
负责通过网络的物理数据流。它由光纤, 同轴电缆或双绞线等硬件设备组成。在这一层中, 数据以位和帧的形式传输。
在此级别使用的协议是以太网, 令牌环等。
2. Internet层:
Internet层是Link层的上层。该层将数据转换为数据包, 称为IP数据报, 并通过网络跨主机发送这些数据报。这些数据报由主机和目标地址组成, 它们通过网络转发。
在此级别上使用的主要协议是:
- IP(互联网协议):此协议负责使用包头组成的地址将包从源主机转发到目的地。 IP有两个主要版本IPv4和IPv6。
- ICMP(Internet控制消息协议):该协议主要负责通知网络中的问题。
- ARP(地址解析协议):ARP协议是TCP / IP模型的基本协议, 负责将IPv4地址解析为物理地址。
3.传输层:这是TCP / IP模型的第三层, 负责源主机和目标主机之间的通信以及无错误的数据传输。
该层主要包括两个协议:
TCP(传输控制协议):TCP是可靠的协议, 用于源主机和目标主机之间的无错误通信。这是一个面向连接的协议。
UDP(用户数据报协议):与TCP协议相比, 该协议不可靠, 我们可以使用不需要可靠通信的协议。它是无连接协议。
4.应用层:这是TCP / IP模型的顶层。它描述了应用协议并提供了节点到节点的通信。
该层包含各种更高级别的协议, 它们是:
- HTTP和HTTPs(超文本传输协议)
- FTP(文件传输协议)
- SSH(安全外壳)
- TFTP(私有文件传输协议)
- SMTP(简单邮件传输协议)
- DHCP(动态主机配置协议)
2)解释调用函数时堆栈的工作情况?什么时候发生堆栈溢出?
就像堆一样, 堆栈是RAM的特定区域。但是堆栈用于存储函数内部使用的局部变量, 参数和返回值, 堆栈可以自动存储和分配内存。
当我们调用一个函数时, 堆栈执行以下步骤:
- 为返回变量增加空间。
- 将参数压入堆栈。
- 推送功能的局部变量。
当我们调用一个函数时, 堆栈会添加一个堆栈帧, 其中包含用于实际参数, 局部变量, 返回地址等的空间。该堆栈帧位于活动帧中, 直到调用time函数为止, 一旦执行完成, 则将堆栈移出该堆栈堆栈中的帧。
堆栈溢出:我们知道堆栈在执行后释放了内存并释放了空间, 但是在使用完完整的堆栈空间后仍然有条件, 并且没有更多的空间来保存变量, 因此称为堆栈溢出。发生这种情况的原因是堆栈的空间大小也受到限制, 并且在执行时, 如果我们分配的内存比可用内存多, 则发生溢出并导致程序崩溃。堆栈溢出的一些示例是:
- 使用无限递归
- 使用非常大的堆栈变量
- 使用非常深的递归
3)解释声明的含义:int * const p&const int * const p?
int * const p:通过声明指针的方式意味着我们将点变量p声明为常量, 不能更改。我们不能更改其地址的保存, 也不能指向其他变量。如果我们尝试更改p的地址, 则将给出编译时错误。
const int * const p:以这种方式声明指针意味着, 我们无法更改指针的地址, 因为我们无法更改该地址的地址。如果我们尝试这样做, 那么它将生成一个编译时错误。
4)什么是C ++中的默认函数
C ++提供了以下六个默认成员函数:
- 默认构造函数
- 驱逐舰
- 复制构造函数
- 复制分配运算符
- 移动构造函数
- 移动分配运算符
5)字典使用哪种数据结构?
要实现字典, 应使用哪种类型的数据结构取决于我们所需的内容, 因此有一些以下数据结构可用于实现字典。
哈希表:如果我们想要一个简单的字典, 没有前缀作为选项, 或者是最近邻居搜索, 那么我们可以对字典使用哈希或哈希表。
特里:如果我们要添加前缀和快速查找, 这可能是一个不错的选择。但是, 它比其他数据结构占用更多的空间。
三元搜索树:如果我们想要像trie的所有品质, 但又不想给更多的空间, 那么我们可以使用三元搜索树。
BK-树:如果我们需要诸如拼写检查器, 查找相似单词等规范, BK-树是最好的数据结构之一。
6)如何从一个字符串中也有重复的单词中找到一个唯一的单词?
我们可以使用HashMap, Set和Regex从字符串中找到唯一的单词。
还可以向候选人询问以下问题:
- 使用动态编程, 实现Snake and Ladder游戏并找到给定游戏中从1到100所需的最小移动数。
- 为DFA的数据结构建模, 该数据结构将事件作为参数并执行所需的操作。
- 解决三个贴错标签的罐子的问题。
- 如何比较两个二叉树?
- 如何证明一棵树的内部节点数少于叶子数?
技术性第三轮或导演轮
此回合是具有挑战性的回合, 因为在此回合中, 经理将根据你的项目提出问题, 因此应聘者必须对自己完成的项目有深入的了解, 并需要解决一些难题。
1)为河内塔写一个算法?
河内塔是一个非常流行的数学难题。在这个难题中, 我们得到了三个圆盘和三个杆。盘片按升序排列在第一根杆中。我们需要将磁盘从第一杆以相同的顺序转移到第三杆。
还有一些规则:
- 我们可以一次移动一个磁盘
- 我们只能移动最上面的磁盘
- 磁盘应始终按升序排列, 即, 较大的磁盘不能放在较小的磁盘上。
算法:
假设有塔Beg, Aux和Dest, 并且有两个磁盘, 其中n磁盘是较大的磁盘, n-1是较小的磁盘。
开始
步骤1:将n-1磁盘从Beg塔转移到Aux
步骤2:将N磁盘从Beg移至End
步骤3:将磁盘n-1从塔辅助移到C.
Tower(n, Beg, Aux, Dest)
Begin
If n=1 then, Print: Beg-> Dest;
else
Call Tower(n-1, Beg, Dest, Aux);
Call Tower(n, Beg, Aux, End);
Call Tower(n-1, Aux, Beg, End);
endif
End
2)编写代码以在”链表”列表中找到循环?你将如何删除此循环?
#include<stdio.h>
#include<stdlib.h>
struct Node
{
int data;
struct Node* next;
};
/* Function for removing the loop. */
void remLoop(struct Node *, struct Node *);
/*Function to remove and detect the loop*/
int detAndRemLoop(struct Node *list)
{
struct Node *p1 = list, *p2 = list;
while (p1 && p2 && p2->next)
{
p1 = p1->next;
p2 = p2->next->next;
/*if p1 and p2 will meet at some point which means there is a loop*/
if (p1 == p2)
{
remLoop(p1, list);
printf("Loop is occurred\n");
/* Return 1 if loop is found */
return 1;
}
}
/* Return 0 if there is no loop*/
return 0;
}
/* Function to remove loop. */
void remLoop(struct Node *loop_node, struct Node *head)
{
struct Node *ptr1 = loop_node;
struct Node *ptr2 = loop_node;
// Count the number of nodes in loop
unsigned int k = 1, i;
while (ptr1->next != ptr2)
{
ptr1 = ptr1->next;
k++;
}
// Fix one pointer to head
ptr1 = head;
ptr2 = head;
for (i = 0; i < k; i++)
ptr2 = ptr2->next;
while (ptr2 != ptr1)
{
ptr1 = ptr1->next;
ptr2 = ptr2->next;
}
ptr2 = ptr2->next;
while (ptr2->next != ptr1)
ptr2 = ptr2->next;
/* Set the next node to Null to fix the loop */
ptr2->next = NULL;
}
/* Function to print linked list */
void printList(struct Node *node)
{
while (node != NULL)
{
printf("%d ", node->data);
node = node->next;
}
}
struct Node *newNode(int key)
{
struct Node *temp = (struct Node*)malloc(sizeof(struct Node));
temp->data = key;
temp->next = NULL;
return temp;
}
int main()
{
struct Node *head = newNode(40);
head->next = newNode(15);
head->next->next = newNode(12);
head->next->next->next = newNode(10);
head->next->next->next->next = newNode(4);
/* Create a loop*/
head->next->next->next->next->next = head->next->next;
detAndRemLoop(head);
printf("Linked List after removing loop \n");
printList(head);
return 0;
}
输出
Loop is occurred
Linked List after removing loop
40 15 12 10 4
3)你将如何设计Excel电子表格的数据结构?
我们可以使用以下方法设计Excel电子表格:
- 二维数组(但是会占用很多空间)
- 稀疏矩阵
- 地图等
4)解释OS中的内存保护。
内存保护是一种控制未经授权访问计算机内存的机制。内存保护可防止进程未分配的内存访问。首先检查内存地址, 然后由进程使用, 以查看是否分配了地址。
有两个寄存器LBR和UBR用于实现存储器保护。
5)什么是OS中的虚拟内存?
虚拟内存是操作系统的内存管理技术。当主存储器没有足够的空间来执行代码时, 虚拟存储器是提供给程序的额外空间。它暂时将数据从RAM传输到磁盘存储, 该磁盘使用硬盘的非活动内存, 称为虚拟内存。
6)编写算法以将元素插入到已排序的链表中?
假设链表是按升序排序的, 则其算法如下。设输入节点为13并赋值为n
假设输入链接列表为:
3 8 11 15 20
1)如果给定的链表为空, 则将该节点分配为head并返回它。
2)如果节点n的值小于头节点的值, 则在开始处插入该节点并将其分配为头。
3)在循环中, 搜索适当的节点, 然后将其插入输入节点。要从头开始搜索适当的节点, 请继续移动直到到达值大于输入节点的节点x(假设15)。 x之前的节点将是适当的节点(11)。
4)在步骤3中找到的相应节点(11)之后插入节点(13)。
插入后:
3 8 11 13 15 20
7)找到总和等于给定数的一对元素?
#include <stdio.h>
void Pair(int arr[], int n, int sum)
{
for (int i = 0; i <=n; i++)
{
for (int j = i + 1; j <=n; j++)
{
if (arr[i] + arr[j] == sum){
printf("Pair element found at position %d and %d\n ", i, j);}
}
}
}
int main()
{
int arr[] = { 5, 8, 9, 1, 6, 2, 7, 3};
int sum = 11;
int n = sizeof(arr)/sizeof(arr[0]);
Pair(arr, n, sum);
return 0;
}
输出
Pair element found at position 0 and 4
Pair element found at position 1 and 7
Pair element found at position 2 and 5
也可以要求候选人提出以下问题
- 如果存在一个数字数组, 其中包含从1到n的数字。如果我们用另一个替换一个数字。在O(N)中找到两个数字。
- 如果在婚姻职能中有n个人, 则将这些人分为两组, 这样每个人彼此认识?
- 使用动态编程, 实现Snake and Ladder游戏并找到给定游戏中从1到100所需的最小移动数。
- 一个城市有n座房屋。全部放在一行中。我们可以用三种颜色(R, G, B)中的任何一种给房屋着色。每种颜色都会给每个房屋上色的费用。没有两个邻居的房子可以具有相同的颜色。打印最低成本为所有房屋上色。
- 如果给定LinkedList和数字k。在一组k中反向LinkedList。
人力资源回合
人力资源回合将是整个招聘过程的最后一轮。与上述所有回合相比, 这是一个简单的回合, 面试官只想与候选人互动。在这一回合中, 面试官将根据沟通技巧和软技能对候选人进行评判。
1)简要介绍一下自己?
这个问题是一个非常普遍的问题, 大多数面试中都问这个问题。可以通过以下方式回答这个问题。
早上好/下午/晚上, 先生/妈妈, 很高兴有这个机会介绍自己。我叫Anamika Singh, 属于乌代浦。我已经从诺伊达工程技术学院的CSE分公司完成了B. Tech的学士学位, 并且在圣约翰·英特学院(Saint John Inter College)上学。如果我谈论我的家庭成员, 那么我的家庭中就有5个成员, 包括我在内。我父亲是政府老师, 母亲是家庭主妇, 我还有一个弟弟, 上个月他完成了高中毕业。我对C, C ++和Java等编程语言有很好的了解。我还创建了一些基于大学的有关这些技术的项目。我是一个非常自信, 聪明和适应能力强的人。我可以在任何环境中适应自己, 并可以应对任何类型的情况。我的爱好是打羽毛球, 跳舞, 绘画和上网。谢谢。
2)为什么要加入Adobe?
面试官问这个问题, 以检查你是否真的有兴趣加入, 或者你加入该公司的动机是什么。你应通过以下方式回答此问题:
主席先生, Adobe是遍布全球的伟大公司之一。每个人都希望与Adobe合作。这是一个工作的好地方。而且我的技术能力符合公司的要求。我可以展示自己的技术技能为公司的发展以及职业发展做出贡献。
3)你拥有什么技能, 以便我们雇用你?
通过这个问题, 面试官想检查一下, 你对自己的技能的了解程度如何, 以及对自己的看法与他人不同。对此的答案应为:
我对C, C ++, Java和数据结构有很好的理论和实践知识。我已经针对这些技术创建了多个项目。我可以在比其他更少的时间内非常有效地解决编码难题。
4)你梦想中的公司是哪家?
通过这个问题, 面试官想检查一下你的热情。该公司是你梦想中的公司, 还是你没有其他选择, 想要加入该公司。因此考生应仔细回答这个问题。
要回答这个问题, 候选人在选择公司的特征时, 切勿使用任何其他公司的名称。
例:
我的梦想工作是从事创新, 并向世界提供可以改变人们生活方式的产品。我对此工作感到很兴奋。据我所知, Adobe是一家致力于创新和创造力的公司。
5)谈谈你的家庭背景吗?
这是一个普遍而轻松的问题, 因为你无需花太多时间来回答这个问题。要回答这个问题, 你需要告诉你你有多少名成员以及他们做什么。
例:
我的家人有五个成员, 包括我在内。我的父亲Jay Prakash先生是一名商人, 从事电子设备业务。我的母亲Sunita夫人是一位出色的家庭主妇。我有两个哥哥, 他们是HCL技术的软件开发人员。
6)十年后, 你想在哪里看到自己?
例:
十年后, 我希望自己能在这家公司中担任各自的职务, 从而可以承担公司的重大职责。我想在每个级别上学习, 这将提高我的技能, 并将对公司的发展有所帮助。
7)你独特和不同的品质是什么, 这使你成为该公司最合适的员工?
这是与”我为什么要雇用你”相同的问题, 答案应为第3个问题。
8)你认为你是一个目标导向的人吗?
是的, 我是一个目标明确的人, 我有一些人生的关键目标, 我要尽早实现。我会定期更新我的目标清单, 直到达到目标为止。
9)你最大的优点和缺点是什么?
我最大的优点就是我的自我激励能力。有了这个, 我可以面对任何挑战。
我最大的弱点是我的情感天性。当我看到某人处于任何不利状况时, 我都容易受到伤害。
才智
推理科
技术(MCQ)+编码测试(主观)
评论前必须登录!
注册