我在 Noida 的 PayTM 接受了Java后端开发人员简介的面试。
第 1 轮:在线测试
- 有n个石头。每块石头都有一个与之相关的重量。第一个石头的重量是 1,第二个石头的重量是 2.. 依此类推。给定一个整数 x。您需要选择最大数量的石头,以使所选择的石头总重量小于 x。
您还会获得一系列您无法挑选的石头。
– 输入:
n = 10(有 10 个石头,重量分别为 1、2、3、4、5、6、7、8、9 和 10)
x = 12(收集的石头总重量不能超过12)
arr = {1, 2, 5} (重量为 1, 2, 5 的石头不能被采摘)
– 输出:
2(只能捡 2 个石头。{3, 4} 或 {3, 6} 或 {4, 6}) - 查找 JSON 对象的深度。
– 输入:
{x:[{a: 1, b: 2}, {a: 4, b: 5}], y: 1}
– 输出:
3
类似于:https://www.geeksforgeeks.org/find-maximum-depth-nested-parenthesis-string/
第二轮:技术面试
- 说说你自己
- 找出使用前 N 个自然数将和 N 相加的多种方法。
– 例子:
对于 n=3,输出=4 ([1+1+1], [1+2], [2+1], [3])
对于 n=4,输出=8 ([1+1+1+1], [1+1+2], [1+2+1], [1+3], [2+1+1], [ 2+2]、[3+1]、[4]) - 检查二叉树是否是二叉搜索树
- 在二叉树中查找从根到给定节点的路径
有人问我两种方法:一种使用额外空间,另一种不使用额外空间 - 使用栈实现队列
- N皇后问题
- 以给定大小的组反转链表
- 关于Java 的问题:
- String、StringBuilder 和 StringBuffer 之间的区别
- 创建自定义的不可变类
- wait() 和 sleep() 的区别
- Java有哪些不同类型的克隆以及它们是如何工作的
- 什么是序列化?假设有一个包含 int 和 String 字段的类。我们序列化这个类的一个对象。现在我们可以将它反序列化为另一个具有 long 和 String 字段的类的对象吗?
- 什么是抽象类?
- 基于简历的问题:
- 什么是 REST API?
- 我们如何使 REST API 无状态?
- 如何保护 REST API?
- 什么是 AJAX,为什么要使用它?
第三轮:技术面试
- 说说你自己
- 对当前组织中当前项目的深入讨论
- 设计一个系统可以在一天内处理 10 亿次服务器点击
- 查找与给定列号对应的excel列名
- 对 0 和 1 的数组进行排序
- 每天股票的成本在一个数组中给出,找出你在那几天通过买卖可以获得的最大利润。您只能买卖股票一次。例如,如果给定的数组是 {100, 180, 260, 310, 40, 535, 695},则在第 4 天买入,在第 6 天卖出可以获得最大利润。
- Java的线程池是什么?
- 什么是 ORM?
- NoSQL 和 SQL 的区别。我们什么时候更喜欢 NoSQL 而不是 SQL?
- 什么是 ACID 属性?
- HTTP 和 HTTPS 之间的区别。它们是如何工作的?
- 什么是数字签名?
第四轮:技术面试
- Spring 和 Springboot 的区别
- 给定一个由 0、1 和 2 组成的数组。找出包含所有三个数字的最短间隔的长度。
– 输入:
{1, 2, 2, 2, 1, 2, 1, 1, 0, 0, 1, 1, 2, 2}
– 输出:
4(从索引 5 到 8 的间隔) - 设计一个停车场
第 5 轮:人力资源面试
- 自我介绍
- 你为什么要改变?