📜  三星 RnD 编码轮问题

📅  最后修改于: 2022-05-13 01:58:23.245000             🧑  作者: Mango

三星 RnD 编码轮问题

这与 geeksforgeeks 上提到的所有过程有点不同。

第一轮是Hackerearth,这是一个公开的轮次,任何人都可以参加1年到11年的经验,然后是三星能力测试和面试。

第一轮:HackerEarth轮(筛选轮)公开赛

在这一轮中,需要在 2 小时 30 分钟内解决 2 个非常简单的编码问题。我能够在 1 多小时内解决它们。第一个问题名称是Optimal Path 。第二个是Bit even Array。有多个问题,其中随机问题是针对任何个人的。其次是找到使两个字符串相同的最小步骤数。我们一次只能移动一个元素,不能在字符串之间移动元素。我们必须移动字符或替换它,交换两个也需要 1 步,而 1 步是用于更改字符。

第二轮:三星能力测试

这一轮应该是与三星ofc分开的第三方地点。本轮持续时间为 4 小时。我们必须在三星提供的虚拟环境中解决 1 个编码问题,因此没有标准库不起作用,我们仅限于 C、CPP 和Java。并且必须编写自己需要的所有内容,例如堆栈队列优先级队列或散列函数,并且不能使用动态数组。就像在 Visual Studio 中,我们不能在运行时从用户那里获取输入后创建数组,同样,这里也是一样的,会抛出错误。

现在谈到这个问题,我不记得问题的确切名称,但它是“ Highway Repair 2”,它表示我们有 t 个测试用例,并且在每个测试用例中我们都有一个数字 n,表示高速公路上的洞的数量,它可以在 3 到 1000 之间。然后是一个大小为 n 的数组,给出了高速公路上所有这些洞的位置,并且数组中没有 2 个或更多的值是相同的,并且所有值都从 1 开始. 然后是代表补丁大小的值 k。请记住,补丁大小是恒定的,最小为 3,最大为 100。如果我们要修补任何位置,那么从起始位置开始,它的大小仅为 k。不多不少。请记住,所有给出的数字将永远是正数。现在我们有了值 n、k 和大小为 n 的数组。我们必须最小化并打印补丁的重叠,因为只要有一些重叠,它就会对人类和自然产生一些有害的烟雾(从这句话中我认为如果我们将某块土地重叠超过 1,那么我们的结果将包含没有重叠的次数)。注意没有给出高速公路的最大长度,所以我认为我们可以在维修期间超过给出的最大尺寸以减少重叠。 (同样没有给出任何例子或解释来验证这一说法)。

在经历每一个可能的场景时,我能够使用递归和回溯通过示例测试用例,但无法解决问题,因为这种方法提供了 TLE,但一些测试用例仍然通过。我需要将 DP 应用到其中,但由于无法正确实施而运气不佳。

第 3 轮:这是第 2 轮的延续,或者我们可以说是第 2 轮的第 2 部分,并在 2 周后在同一中心被调用。

这一次,人数明显减少。第二轮第一部轻松超过120人,这一轮包括我在内只有12人。我相信只有那些能够部分解决先前问题的人才能被召唤。这一次又是一样的。只是不同的问题。

这个问题是基于举重机的。它的名字是“重量机器1” 。再次问题以类似方式开始。我们得到称重机(印地语中的 Taraju,它是一个双面称重机,我们在其中比较 2 个不同的权重。)并给出了一些权重,以及 2 个值 A 和 B(其中 1<=A无法生成任何数字,那么我们可以添加一个新的额外权重 I,我们使用它必须能够产生这些值之间的所有数字或权重。如果我们不需要额外的权重,那么答案是“0”(零),或者我们必须打印额外的权重。我们只能在数组中添加 1 个单个权重,例如第 n+1 个元素。如果我们在添加时有多个权重我们可以解决,那么我们必须打印最小的一个。 (例如,如果我们可以通过添加 3 或 7 作为 Ith 权重来解决问题,那么我们必须选择 3)。

例如:-

测试用例 1 – A = 1,B = 15,n = 4,

A[] = 1, 2, 4, 8

答案 = 0

解释=我们可以通过选择特定数字来生成所有数字而无需添加任何数字

1、2、1+2、4、4+1、4+2、4+2+1、8等

测试用例 2 – A = 1,B = 10,n = 3,

A[] = 8, 9, 4

答案 = 1

解释 = 我们需要加 1 以生成从 1 到 10 的所有数字,例如

9-8、1+9-8、4-1、4、4+1、9+1-4、8-1、8、9、9+1。通过这种方式,我们能够生成范围内的所有数字。

范围并不总是以 1 开头,它可能以 200 甚至 5000 等开头,等等。

记住堆大小只有 1MB,所以需要在问题中寻找内存限制。

尽管我能够生成所有数字,但无法识别 I 数字或结果。