`

我的一次 Python 面试经历

阅读更多

作者: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等大厂大佬的经验增长自身学习资料职业路线赚钱思维,微信搜索逆锋起笔关注!

分享到:
评论

相关推荐

    python程序员面试(算法完整)

    - 例如,当被问及如何处理与同事意见不合的情况时,可以通过描述一次成功的冲突解决经历来展示自己的处理能力。 **4. 如何回答快速估算类问题** - 快速估算问题往往要求面试者能够在有限的时间内给出合理的大致...

    历年华为笔试面试题目及面试经历汇总

    请分享一次你在项目中的成功或失败经历。 面试经历部分,你可以了解到面试者如何准备,他们在面试中遇到了什么问题,以及如何成功应对。这些经验分享可以帮助你避免常见错误,更好地展现自己的优势。例如,面试者...

    华为od社招python开发面试题.pdf

    2. **心理调适**:保持积极乐观的心态,对待每一次面试机会都要全力以赴。 3. **沟通技巧**:提升沟通表达能力,能够清晰、准确地阐述自己的观点和想法。 4. **持续关注**:密切关注行业动态和技术发展趋势,为面试...

    Python程序设计课后习题答案-第二单元.docx

    7. **变量初始化**:可以用`x=y=z=10`一次性给多个变量赋值。 8. **input()函数**:`input()`函数接收用户输入,输入的字符串会被视为字符串类型,所以`x=input()`后,`x`的值为字符串'12'。 9. **eval()函数**:`...

    头条 Python 工程师面经分享:一年经验也能进大公司!1

    这篇博客分享了一位拥有Python工程师背景的求职者在2016年底的面试经历,主要集中在阿凡题公司的面试过程。这位求职者毕业于985大学的通信工程专业,但因创业经历使得其只有1年的工作经验。文章详细介绍了阿凡题的...

    网络工程师的Python之路-初级篇

    作者通过一个例子说明了Python在网络工程师职位中的重要性:在一次面试中,作者发现编程技能——尤其是Python——在招聘要求中占据了重要位置。这不仅反映出编程能力正在成为网络工程师职场竞争力的重要指标,而且也...

    大专生自学Python到找到工作的经历.docx

    最终,通过不懈的努力和自我提升,他获得了几次面试的机会,并成功拿到了一份工作。这份工作不仅肯定了他的自学成果,也让他看到了自己未来的职业方向。 他的经历对于那些想要通过学习编程改变自己命运的人来说,...

    我是如何自学python到找到高薪工作.docx

    - 经过多次尝试,最终成功入职一家位于闵行区的民营公司,担任Python开发职位,月薪5500元。 #### 四、总结与建议 1. **坚持不懈**:面对挑战和困难时保持积极态度,不断努力直至达成目标。 2. **合理规划**:...

    Python3.2.3官方文档(中文版).pdf

    文档的翻译工作源于译者在面试时遇到的一次尴尬经历。他被问到关于 Python 的问题,但由于对此语言的不了解,感到非常挫败。这次经历激发了他深入学习 Python 的决心。通过编写并运行简单的 "Hello, World!" 程序,...

    IBM面试及笔试经历(超值).rar

    面试官可能会提出“请描述一次你解决复杂问题的经历”或“你在团队中如何处理冲突”的问题。 在IBM笔试过程中,除了技术测试外,还可能包括英语阅读理解、案例分析等。这些题目旨在考察求职者的综合能力和实际工作...

    情景面试题库.zip

    3. 请分享一次你成功优化办公流程的经历。 4. 对于突发事件,你如何保持冷静并迅速做出决策? 二、研发岗位面试 研发面试通常侧重于技术技能和项目经验。常见问题可能涉及: 1. 描述你参与的一个复杂项目,你在...

    IT面试技巧65个—— 受用终身

    分享一次失败的经历,并说明你是如何从中吸取教训并成长起来的。例如,“在我参与的一个项目中,由于前期的需求分析不够充分,导致后期出现了很多问题。这次经历教会了我,无论项目大小,都必须重视每一个细节,尤其...

    面试心得体会

    ”或“描述一次你解决复杂问题的经历”。 面试18k心法秘诀可能包含了针对这些技术点的具体应对策略,如如何有效地回答问题、如何展示自己的项目经验、如何在压力下保持冷静等。而"2016.4"的文件可能揭示了当时面试...

    西安亿阳信通比式面试

    西安亿阳信通比式面试是信息技术领域招聘考核的一部分,它不仅仅是一场常规的求职测试,更是对求职者专业素养与能力的一次全面检阅。对于应聘亿阳信通西安分公司的求职者而言,这不仅是一个展示自身技术能力与解决...

    2022年程序员面试的自我介绍模板汇编七篇.pdf,这是一份不错的文件

    在程序员面试的过程中,自我介绍无疑是一次重要的自我展示机会。面试者需要通过这一环节向面试官传达自己的专业背景、技术能力、实践经验、学习态度以及个人职业规划等关键信息。成功的自我介绍能够为面试官留下深刻...

    3万字面试宝典-北大女生应聘60家公司【完整txt】

    根据给定的信息,我们可以从这位北大女生的面试经历中提炼出以下重要的IT行业知识点与面试技巧: ### 一、面试前准备 1. **技术准备**:对于IT行业的面试而言,扎实的技术基础至关重要。该女生在面试前会针对每...

    一分钟面试自我介绍范文精选.doc

    这个故事可以是你在团队中的一次领导经验,也可以是你解决某项复杂问题的过程。这样的故事能够让面试官直观地感受到你的个性和能力,比如领导力、创新思维、团队合作能力或问题解决技巧等。在选择故事时,要考虑到...

    程序员求职面试宝典

    《程序员求职面试宝典》是一本为准备求职的程序员量身打造的综合指南,它涵盖了面试真题、求职技巧以及职业规划等多个方面,旨在帮助程序员在竞争激烈的IT行业中脱颖而出,找到理想的工作。以下是对这些关键知识点的...

    世界500强面试题500强面试题

    - 行为面试题:考察个人经历和行为,如“请描述一次你在团队中解决冲突的经历”。 - 技能测试题:针对特定职位所需技能,如编程题或数据分析题。 - 智力题:测试逻辑思维和问题解决能力,例如数学谜题或推理题。 ...

Global site tag (gtag.js) - Google Analytics