作者:SyntaxError 出处:
https://segmentfault.com/a/1190000022455160
首先我挺喜欢这家公司的面试风格的,也是比较务实的吧。无奈自己的心理因素和技术水平都不好,导致面试失败。再接再厉吧
1.一上来就是编程题三连
1.1 大概意思就是:俩列表a b,如果a中的元素在b中,那么就保存此元素在a中的索引值,最后统一输出所有索引值。要求:时间复杂度小于O(n)
这个我当时想到的是循环遍历a,然后判断是否i in b,但是这个时间复杂度是O(n2),GG。最后面试官提醒了我一下hashmap,瞬间捶胸顿足……。最后自己想了一下,可以将b先转成字典,然后再使用in。
a = [5,3,1,5,4]
b = [5,3]
d = {}
for i in b:
d[i] = 0
res = []
l = len(a)
for i in range(l):
if a[i] in d:
res.append(i)
print(res)
1.2 如图,输入为这样,输出为那样,写吧……
输入几组数据,pid为-1的代表根节点。如果数据为非根节点,那么就要搜索此节点直至找到根节点。
这个其实我知道考的是树的遍历,但是没见过这种形式的题,要自己构建输入数据的形式,一下子就懵了,再加上面试官在那一直盯着……唉,承认自己能力不足吧。后续自己写了一遍,大家可以看一下,有问题直接下面评论就可以。
d = {
"A":"-1",
"A-1":"A",
"A-2":"A",
"A-3":"A",
"A-2-1":"A-2",
"A-2-2":"A-2",
"A-2-3":"A-2"
}
res = []
def func(node):
array.append(node[0])
if node[1] == "-1":
return
func((node[1],d[node[1]]))
for i in d.items():
array = []
func(i)
string = "/".join(array[::-1])
res.append("/"+string)
for j in res:
print(j)
1.3 这个题太经典了。最短路径和。
要注意是从第一行走到最后一行,而且只能向下或者斜向下走(我当时没看清就写,写成了从左上走到右下……)。我这里写的是动态规划的解法。Leetcode上有原题,解法不唯一。
array = [[1,8,5,2],
[4,1,7,3],
[3,6,2,9]]
x = len(array)
y = len(array[0])
dp = [[0 for i in range(y)] for j in range(x)]
# 遍历顺序是每行内的每列。所以遍历array中第一行只执行到if,dp中第一行就确定了,然后再确定dp第二行。
# 要注意两个边界条件
for i in range(x):
for j in range(y):
if i == 0:
dp[i][j] = array[i][j]
elif j == 0:
dp[i][j] = array[i][j] + min(dp[i-1][j], dp[i-1][j+1])
elif j == y-1:
dp[i][j] = array[i][j] + min(dp[i-1][j-1],dp[i-1][j])
else:
dp[i][j] = array[i][j] + min(dp[i-1][j-1],dp[i-1][j],dp[i-1][j+1])
# [[1, 8, 5, 2],
# [5, 2, 9, 5],
# [5, 8, 4, 14]]
print(min(dp[-1]))
# 4
2.其他面试问题
这里就不写答案了,大家可以百度或google一下。
- 2.1 什么是事务,事务的出现是为了解决什么问题
- 2.2 什么是聚簇索引
- 2.3 假如没有主键,InnoDB会以哪个字段建立主键
- 2.3 聊聊RabbitMQ中的connection与channel的关系,还有建立channel的一些规范或注意事项。
逆锋起笔
是一个专注于程序员圈子的技术平台,你可以收获最新技术动态
、最新内测资格
、BAT等大厂大佬的经验
、增长自身
、学习资料
、职业路线
、赚钱思维
,微信搜索逆锋起笔
关注!
相关推荐
- 例如,当被问及如何处理与同事意见不合的情况时,可以通过描述一次成功的冲突解决经历来展示自己的处理能力。 **4. 如何回答快速估算类问题** - 快速估算问题往往要求面试者能够在有限的时间内给出合理的大致...
请分享一次你在项目中的成功或失败经历。 面试经历部分,你可以了解到面试者如何准备,他们在面试中遇到了什么问题,以及如何成功应对。这些经验分享可以帮助你避免常见错误,更好地展现自己的优势。例如,面试者...
2. **心理调适**:保持积极乐观的心态,对待每一次面试机会都要全力以赴。 3. **沟通技巧**:提升沟通表达能力,能够清晰、准确地阐述自己的观点和想法。 4. **持续关注**:密切关注行业动态和技术发展趋势,为面试...
7. **变量初始化**:可以用`x=y=z=10`一次性给多个变量赋值。 8. **input()函数**:`input()`函数接收用户输入,输入的字符串会被视为字符串类型,所以`x=input()`后,`x`的值为字符串'12'。 9. **eval()函数**:`...
这篇博客分享了一位拥有Python工程师背景的求职者在2016年底的面试经历,主要集中在阿凡题公司的面试过程。这位求职者毕业于985大学的通信工程专业,但因创业经历使得其只有1年的工作经验。文章详细介绍了阿凡题的...
作者通过一个例子说明了Python在网络工程师职位中的重要性:在一次面试中,作者发现编程技能——尤其是Python——在招聘要求中占据了重要位置。这不仅反映出编程能力正在成为网络工程师职场竞争力的重要指标,而且也...
最终,通过不懈的努力和自我提升,他获得了几次面试的机会,并成功拿到了一份工作。这份工作不仅肯定了他的自学成果,也让他看到了自己未来的职业方向。 他的经历对于那些想要通过学习编程改变自己命运的人来说,...
- 经过多次尝试,最终成功入职一家位于闵行区的民营公司,担任Python开发职位,月薪5500元。 #### 四、总结与建议 1. **坚持不懈**:面对挑战和困难时保持积极态度,不断努力直至达成目标。 2. **合理规划**:...
文档的翻译工作源于译者在面试时遇到的一次尴尬经历。他被问到关于 Python 的问题,但由于对此语言的不了解,感到非常挫败。这次经历激发了他深入学习 Python 的决心。通过编写并运行简单的 "Hello, World!" 程序,...
面试官可能会提出“请描述一次你解决复杂问题的经历”或“你在团队中如何处理冲突”的问题。 在IBM笔试过程中,除了技术测试外,还可能包括英语阅读理解、案例分析等。这些题目旨在考察求职者的综合能力和实际工作...
3. 请分享一次你成功优化办公流程的经历。 4. 对于突发事件,你如何保持冷静并迅速做出决策? 二、研发岗位面试 研发面试通常侧重于技术技能和项目经验。常见问题可能涉及: 1. 描述你参与的一个复杂项目,你在...
分享一次失败的经历,并说明你是如何从中吸取教训并成长起来的。例如,“在我参与的一个项目中,由于前期的需求分析不够充分,导致后期出现了很多问题。这次经历教会了我,无论项目大小,都必须重视每一个细节,尤其...
”或“描述一次你解决复杂问题的经历”。 面试18k心法秘诀可能包含了针对这些技术点的具体应对策略,如如何有效地回答问题、如何展示自己的项目经验、如何在压力下保持冷静等。而"2016.4"的文件可能揭示了当时面试...
西安亿阳信通比式面试是信息技术领域招聘考核的一部分,它不仅仅是一场常规的求职测试,更是对求职者专业素养与能力的一次全面检阅。对于应聘亿阳信通西安分公司的求职者而言,这不仅是一个展示自身技术能力与解决...
在程序员面试的过程中,自我介绍无疑是一次重要的自我展示机会。面试者需要通过这一环节向面试官传达自己的专业背景、技术能力、实践经验、学习态度以及个人职业规划等关键信息。成功的自我介绍能够为面试官留下深刻...
根据给定的信息,我们可以从这位北大女生的面试经历中提炼出以下重要的IT行业知识点与面试技巧: ### 一、面试前准备 1. **技术准备**:对于IT行业的面试而言,扎实的技术基础至关重要。该女生在面试前会针对每...
这个故事可以是你在团队中的一次领导经验,也可以是你解决某项复杂问题的过程。这样的故事能够让面试官直观地感受到你的个性和能力,比如领导力、创新思维、团队合作能力或问题解决技巧等。在选择故事时,要考虑到...
《程序员求职面试宝典》是一本为准备求职的程序员量身打造的综合指南,它涵盖了面试真题、求职技巧以及职业规划等多个方面,旨在帮助程序员在竞争激烈的IT行业中脱颖而出,找到理想的工作。以下是对这些关键知识点的...
- 行为面试题:考察个人经历和行为,如“请描述一次你在团队中解决冲突的经历”。 - 技能测试题:针对特定职位所需技能,如编程题或数据分析题。 - 智力题:测试逻辑思维和问题解决能力,例如数学谜题或推理题。 ...