海量软件面试体验(校园)
对于助理软件开发人员角色。
线上轮(2节)
第 1 节
a) 给定一个数 N,找出从 1 到 N 的二进制表示为回文的数的个数。
b) 有两摞书(S1 和 S2)。堆叠中的每本书都有重量。您将获得可以挑选的最大书籍重量(W)。您必须最大限度地增加可以挑选的书籍数量。请注意,每次您只能从 S1 或 S2 中进行选择。
S1:3 6 3 2 5
S2:15 1 1 1 1 1 1 9
宽:15
答案:7
c)我不记得确切的问题,但它是基于图形的拓扑排序。这很难。
第 2 节
a) 一个网站可以有很多关键词。一个网站也可以有很多链接。编写表的设计来存储这些。
b) 基于嵌套的 SQL 查询。
技术第一轮
a) 忽略大小写的字符串比较。使用位的概念。
b) 仅给定一个指向单链表中要删除的节点的指针,将其删除
c) 删除一棵树
d) .cpp 或 .cpp 的编译究竟是如何发生的? Java文件生成可执行文件?
我必须在纸上为 3 个编码问题编写代码。然后他让我谈谈我的任何两个项目。这里没有问题。
技术回合 2
讨论编码回合的书堆问题,因为我在那里只能通过 5 个测试用例中的 2 个。他要我彻底解决。我告诉了一种方法,在这种方法中,使用发辫的概念检查所有可能性。我必须先告诉逻辑,然后为它编写代码。
科技第三轮
a) N-ary 树的结构。我被告知使用链表来存储子节点而不是向量。
b) 遍历 N 叉树并找到所有节点的总和。
c) 如果 SQL 查询存储为一个类,那么这个类的成员字段是什么?
人力资源轮
这里没什么。
面试官知识渊博,乐于助人。当我无法继续时,他们不断地给我提示,我不断地在这些提示的基础上找到解决方案。他们主要关注我的解决方案的逻辑,而不是我的代码是否正确。