字节ailab后端实习凉经

上次面字节是半年前,当时一面挂,上周五被hr捞出来了

面试官迟到半小时(提前给我打了电话告知会晚点)

没有自我介绍,上来聊了点项目,面试官兴趣不大,开始做题

第1题:

2个有序数组的第K小元素

题目描述

两个已经排好序的数组,找出两个数组合并后的第K小的数。如两个数组[123456][6789 10 11 12],K=8输出:7

只会暴力不会优化,给我换了第二题

第2题:力扣165比较版本号

第二题写出来了

第一题题解

int get_kth_smallest(vector<int> nums1, vector<int> nums2, int k) {
        // 保证nums1.size() <= nums2.size(),方便分析
        if (nums1.size() > nums2.size()) return get_kth_smallest(nums2, nums1, k);
        if (nums1.empty()) return nums2[k-1];
        if (1 == k) return nums1[0] < nums2[0]? nums1[0]:nums2[0];
    
        // 在nums1和nums2中分别取第k/2个数字。当然,如果k/2已经超出数组边界,我们只取数组最后的那个数字。
        int k1 = min(static_cast<int>(nums1.size()), k/2);
        int k2 = min(static_cast<int>(nums2.size()), k/2);
    
        if (nums1[k1-1] < nums2[k2-1]) {
            // 如果nums1[k1-1] < nums2[k2-1],说明nums1[k1-1]小于我们要找的第k小的数字。
            nums1.erase(nums1.begin(), nums1.begin()+k1);
            return get_kth_smallest(nums1, nums2, k-k1);
        } else {
            // 如果nums1[k1-1] > nums2[k2-1],说明nums2[k2-1]小于我们要找的第k小的数字。
            // 如果nums1[k1-1] == nums2[k2-1],说明nums2[k2-1]小于或等于我们要找的第k小的数字。即使nums2[k2-1]等于我们要找的第k小的数字,我们依然可以删掉它,因为还有nums1[k1-1]和它相等呢!
            nums2.erase(nums2.begin(), nums2.begin()+k2);
            return get_kth_smallest(nums1, nums2, k-k2);
        }
    }

看不懂的看下面的思路

让我们假设k是4:
nums1: [a1, a2, a3, ...]
nums2: [b1, b2, b3, ...]
如果a2<b2,那么a2肯定可以删除。因为有可能比a2小的数字只有:

a1。它肯定比a2小,因为数组已排序。
b1。它有可能比a2小。
因此,a2最多只能是第3小的数字,肯定比我们要找的第4数字要小!从而a2,以及比a2还小的a1,都可以删除。

删除这两个数字以后,问题变成了:
nums1: [a3, ...]
nums2: [b1, b2, b3, ...]
从以上两个已排序数组中找出第2小的数字。(k已经变了,因为我们已经删除了两个比我们要找的那个数字还小的数字。)

同理,我们可以删除a3和b1中较小的那个数字,然后问题变成从剩余数字中找到第1小的数字。这个问题不就简单了吗?

推广以上方法,我们可以写出上述的get_kth_smallest函数:

#面经字节##凉经#
全部评论
第一题可以用双指针嘛
1 回复 分享
发布于 07-06 13:34 黑龙江
一样也是这个部门的,二面上来也是问了十几分钟项目然后做题,虽然做出来了但是中间有地方弄错了找了半天才出来,最后因为hr离职了,隔了一周才给我流程挂了…
点赞 回复 分享
发布于 07-11 12:20 上海
😍赞
点赞 回复 分享
发布于 07-17 23:33 上海
请问ai lab现在是叫bytedance research吗
点赞 回复 分享
发布于 09-02 17:37 美国

相关推荐

10-15 03:05
门头沟学院 Java
CADILLAC_:凯文:我的邮箱是死了吗?
点赞 评论 收藏
分享
评论
3
9
分享
正在热议
# 25届秋招总结 #
443173次浏览 4517人参与
# 春招别灰心,我们一人来一句鼓励 #
42122次浏览 537人参与
# 北方华创开奖 #
107468次浏览 600人参与
# 地方国企笔面经互助 #
7973次浏览 18人参与
# 同bg的你秋招战况如何? #
77083次浏览 569人参与
# 实习必须要去大厂吗? #
55804次浏览 961人参与
# 阿里云管培生offer #
120412次浏览 2220人参与
# 虾皮求职进展汇总 #
116163次浏览 886人参与
# 如果你有一天可以担任公司的CEO,你会做哪三件事? #
11668次浏览 289人参与
# 实习,投递多份简历没人回复怎么办 #
2454912次浏览 34860人参与
# 提前批简历挂麻了怎么办 #
149924次浏览 1978人参与
# 在找工作求抱抱 #
906096次浏览 9421人参与
# 如果公司给你放一天假,你会怎么度过? #
4762次浏览 55人参与
# 你投递的公司有几家约面了? #
33209次浏览 188人参与
# 投递实习岗位前的准备 #
1196021次浏览 18550人参与
# 机械人春招想让哪家公司来捞你? #
157643次浏览 2267人参与
# 双非本科求职如何逆袭 #
662359次浏览 7397人参与
# 发工资后,你做的第一件事是什么 #
12798次浏览 62人参与
# 工作中,努力重要还是选择重要? #
35896次浏览 384人参与
# 简历中的项目经历要怎么写? #
86935次浏览 1516人参与
# 参加完秋招的机械人,还参加春招吗? #
20148次浏览 240人参与
# 我的上岸简历长这样 #
452049次浏览 8089人参与
牛客网
牛客企业服务