每一轮都在淘汰赛的基础上进行。
第 1 轮:(基于 Hackerearth 的测试)[时间:1 小时 15 分]
这一轮有2个问题。
- 给定一个大小为 N 和 K 的查询数组,找到包含最左边或最右边的索引(来自 queires)的段数,并且索引处的数字 >= 该段的每个元素 例如:arr[] = [1,2 ,3] K = [3] -> o/p : 3 ([3],[2,3][1,2,3])
- 修改这个问题(https://leetcode.com/problems/find-k-closest-elements/)。
判决:清除
第二轮:F2F [时间:1小时]
- 给定一个数组和一个目标和 k,找出所有 a[i] + a[j] = k。跟进:处理数组是否同时具有重复和非重复元素
- 找到字符串的第一个非重复字符(只有小写字母)https://leetcode.com/problems/first-unique-character-in-a-string/。跟进:i) 包含小写和大写 ii) 不区分大小写和区分大小写 iii) 在 O(1) 空间复杂度
判决:清除
第三轮:F2F [时间:1小时]
- 查找链表是否为回文 [预期时间和空间复杂度:O(n) & O(1)]。 https://leetcode.com/problems/palindrome-linked-list/
- 求二叉树的直径(https://leetcode.com/problems/diameter-of-binary-tree/)
- 验证一棵树是否是 BST(https://leetcode.com/problems/validate-binary-search-tree/)
判决:拒绝
想法/分析:必须解释第一个逻辑/方法,并且只有在面试官满意时才允许进行编码。第一次切割需要最优化的时间和空间复杂度解决方案。如果你说一个蛮力/次优解决方案,你将被要求考虑更好的解决方案,然后只允许编码。如果您无法在 20 分钟内想出解决方案,则当前问题将被搁置,并会询问下一个问题。必须彻底了解时间和空间复杂性。
祝一切顺利 !!!