头条三面遇诡异的问题




头条三面,居然问我,这个问题,这个解法,为什么只有50%AC,他给我20分钟想,我直接炸了,真看不懂为啥啊,逻辑完全正确啊
#笔试题目##题解##字节跳动#
全部评论
不应该是not in d?
点赞 回复 分享
发布于 2018-09-16 01:08
时间复杂度过大,这题相当于找长度为n的无序数组第n/2大的数,首先创建哈希表简历每个数和出现次数的映射,之后用优化快排找到第n/2的数,如果n为奇数且hash[n/2大的数]=奇数,则存在。偶数反之。时间复杂度最坏O(n+nlogn/2),是这题最优解。 你的解法时间复杂度最坏情况下O(3n+nlogn),而且sorted函数用在for循环中不知道是否每次都要重新计算复杂度。
点赞 回复 分享
发布于 2018-10-12 14:28
很明显左右指针没有同时发生改变,又指针在判定前就发生了变化,左指针在判定后才发生变化。所以对左右指针的赋值需要放在if前
点赞 回复 分享
发布于 2018-09-18 20:46
推荐一个小程序“IT面试题库” 找工作可能用上的哈。
点赞 回复 分享
发布于 2018-09-17 09:18
扔到哈希然后双指针?
点赞 回复 分享
发布于 2018-09-17 01:17
逻辑没问题那就是复杂度的问题 该方法复杂度为mlogm+n+m,m为有几种数,n为seq长度。当D用一个长度为1000的list代替时复杂度为n+1000(省去了排序)。当m>130时 mlogm+n+m大于n+1000。如果用例是随机生成的话,时间卡的比较严的话,应该是可以限制到50ac左右的....也不知道对不对
点赞 回复 分享
发布于 2018-09-17 00:58
mark
点赞 回复 分享
发布于 2018-09-17 00:20
n的范围才1000,为啥不直接n^2暴力做呢
点赞 回复 分享
发布于 2018-09-16 23:48
直接先集合化?如果集合的数量是偶数的肯定不行,是奇数的对集合排序,中间的数就是要求的数?
点赞 回复 分享
发布于 2018-09-16 23:39
这题能AC sp... 不是吧
点赞 回复 分享
发布于 2018-09-16 23:28
什么时候面试的
点赞 回复 分享
发布于 2018-09-16 23:18
🐎
点赞 回复 分享
发布于 2018-09-16 21:52
除了变量写错和边界条件之外,应该没啥问题吧。测试例也都很和谐,也没用数值问题。。
点赞 回复 分享
发布于 2018-09-16 21:20
mark
点赞 回复 分享
发布于 2018-09-16 16:41
中间数定义没错吗?万一大于和小于中间数的个数不相等,就没有中间数了吗
点赞 回复 分享
发布于 2018-09-16 16:38
mark,求解答
点赞 回复 分享
发布于 2018-09-16 13:46
if x not in s: 这个s是什么啊
点赞 回复 分享
发布于 2018-09-16 13:31
逻辑肯定没问题,应该是语言层面的问题,但我不了解py
点赞 回复 分享
发布于 2018-09-16 11:56
m
点赞 回复 分享
发布于 2018-09-16 10:35
没看出来哪里错了,提供一个on的思路,这题就是求中位数,中位数可以用迭代划分数组的方式得到,并且有一个策略能保证迭代划分的复杂度是on的,可以参考c++ stl里的get_kth_element函数
点赞 回复 分享
发布于 2018-09-16 08:22

相关推荐

烤点老白薯:他第二句话的潜台词是想让你帮他点个瑞幸或者喜茶啥的
mt对你说过最有启发的一...
点赞 评论 收藏
分享
评论
点赞
53
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务