“什么是可哈希?”
面试官看似轻描淡写地一问,实则已经默默开始打分,对于这种底层原理问题,最能考验一个应届毕业生的学习能力了。
“emm...可哈希,我认为Python中只要是不可变的值就是可哈希的,比如字典(dict)的键(key)就必须是可哈希。”
李雷回答出这个问题的时候是自信满满的,这么简单的问题,还不是随便拿捏?
“你刚刚回答的什么不可变,那只是表面,你知道可哈希在底层是什么意思吗?”面试官继续追问道。
“额,那我就不知道了。”
“可哈希类型的底层实现涉及到哈希函数的设计,它将输入键的转换为哈希值,从而方便用哈希表进行高效的查找和存储。一般情况下,哈希函数会将可哈希的数据类型转换为唯一的整数值,这个整数值会被用于确定哈希表中的索引位置,从而进行快速的查找和存储。”
面试官语气一顿,继续补充道。
“而对于不可哈希类型的数据,字典等可变类型,Python中使用的是类似指针的方式进行存储,通过该指针在内存中查找对应的值,而不是使用哈希表,在查找可哈希类型的键时会更加高效,这也是为什么不可哈希类型的数据不能用作字典的键。“
“这样吧,我再问你最后一个问题,Python中可哈希与不可哈希类型的值查找时间复杂度分别是多少?”
李雷思考了一下,给出了一个他自己都不确定的答案。
”可哈希应该是O(1)吧,不可哈希应该是O(n)?“
“对,那你知道为什么他们的时间复杂度是这样的原因吗?”
“额,这真不知道...”
面试官摇了摇头,惋惜的对李雷说道。
“是我对你的要求太高了,毕竟你是应届生,确实水平储备不高也正常。但是很遗憾,现在就业市场很紧张,我们的招聘指标也不够,虽然这份工作只有6-8k的薪资,但是依旧来了很多应聘的人,你的水平在他们当中应该是悬了。“
李雷的自信心被击垮了。
自从考研失败决定找工作以来,他屡屡碰壁。面试了十几家公司,要不就是hr拿他刷KPI,要不就是说他技术差。
毕业以来这十年,李雷干了十年销售,经常出去应酬喝酒,还染上了烟瘾,身体都快垮了。前几天他去医院检查的结果出来了,肺癌晚期,已经没救了。
回想自己这一生,除了大学之前在努力学习,后面基本都是在摆烂,导致好好的一张牌被打的稀烂,要是重回大学,他一定好好学习。
在编程中,有一种常用的函数叫做“回溯函数”,回溯函数的基本思想是不断地尝试各种可能性,直到找到正确的解或者是发现无解情况。在这个过程中,如果发现某个分支无解,函数会回到之前的状态然后尝试其他选择,以此类推,直到找到正确的解或者是所有可能性都被尝试过。在尝试各种可能性的过程中,每次都会将函数的一部分状态保存在函数调用栈中,如果当前的选择不行就回到之前的状态继续选择其他的,这样就可以模拟“回退”的效果。
可是人生,哪有回溯函数呢?人又不是“对象”,怎么可以被模拟呢?除非我们只是一串数据。
晚上十二点,李雷走上了天台,发了一个朋友圈。
“天台的风真大。”
李雷从21楼楼顶一跃而下,结束了自己罪恶的一生。
其实跳楼这件事情,李雷只有在跳下来的一瞬间是不后悔的,头着地的一瞬间痛,太痛了!
“雷哥!关一下你的闹钟!”李雷的舍友张三喊道。
李雷迷迷糊糊地醒来,下意识关了闹钟,过了一会儿他又鲤鱼打挺地坐了起来,眼神中全是清醒。
“我重生了!”
感受了一下这副健康的身体,李雷只觉得一身轻。
这一世,他绝不摆烂!