在线测试:有2个问题。不完全记得问题。但第一个是矩阵问题,第二个是修改过的背包。我完全解决了第二个,部分解决了第一个。我得了 131/200 分。我收到了第一轮面试的邮件。
第 1 轮:这是 DSA/Algo 轮。面试官很棒,乐于助人。他问了 2 个问题,并给了我 1 个小时的时间来解决它们。
- 给定一个字符串s。找到大小为 k 的字典序最小子序列。
Ex - s = "satbz" , k = 3 Ans - "abz"
我先说说蛮力的解决办法。然后我使用一些递归告诉 O(n^2) 解决方案。所以面试官让我在 O(n) 中做。过了一段时间,他甚至给出了使用堆栈的提示。然后我告诉了解决方案并编写了代码。这是正确的。
- 给定一个大小为 MxN 的矩阵,由 { L, R, U, B } 组成。
值“L”表示您可以从该单元格向左移动。类似的“R”向右,“U”向上,“B”向下。
您位于最左上角的单元格 (1, 1)。您可以将任何单元格值更改为“L”、“R”、“U”、“B”。您必须找到矩阵中的最小变化,以便存在从 (1,1) 到 (m,n) 单元格的路径。
Ex- [ [R , B , L], [L , B , R], [R , R , U]] Ans = 0 As there already exist a path , (1,1)->(1,2)->(2,2)->(3,2)->(3,3).
还给出了 3 个测试用例。我告诉了 dp 方法,它适用于给定的测试用例。留给代码的时间不多了。
我收到了第二轮面试的邮件。
第二轮(DS/Algo):也是 DSA/Algo 轮。
问的问题是:
- 给定一个完整的二叉树,您必须告诉其中存在的节点数。
约束:
1 <= 节点数 (‘N’) <= 500000。
你只会得到指向根节点的指针,没有别的!
问题状态:在ceil(log(N) * log(N))中解决上述问题。空间复杂度可以是 O(Log(N)) 甚至 O(1)。
我在 O(log(N) * log(N)) 中以恒定的时间空间解决了上述问题。
提示:想想一棵完整二叉树的性质。
- 给定一个包含 n 个元素的数组。返回所有子数组的 min 和 max 之和。
All the elements are distinct N = 3 A = [2, 1, 4 ,3] Expected answer = {1} + {2} + {3} + {1, 2} + {2, 3} + {1, 2, 3} = (1 + 1) + (2 + 2) + (3 + 3) + (1 + 2) + (2 + 3) + (1 + 3) = 24 So, 24 is the required answer.
我给出了 O(n^2) 解决方案并对其进行了编码。我告诉了 O(n) 的方法。
提示:https://leetcode.com/problems/sum-of-subarray-miniums
第 3 轮(技术/文化):面试官问了 1 个 DSA 问题。
- https://www.geeksforgeeks.org/maximum-size-rectangle-binary-sub-matrix-1s/
我立即告诉了解决方案,因为这是一个非常标准的问题。所以我们刚刚讨论了我的简历,并在 15 分钟内结束。
总的来说,我有一个很棒的经历。所有的面试官都非常乐于助人。
我接到电话说我被选中了。