【抖音面经】不愧是字节系|0814

alt alt alt alt alt alt alt alt alt alt alt alt alt

  • 基数排序是一种非比较型整数排序算法,其原理是将整数按位数切割成不同的数字,然后按每个位数分别比较。由于基数排序是按照低位先排序,然后收集;再按照高位排序,然后再收集;以此类推,直到最高位。在排序过程中,相同元素在各个位上的值也相同,因此它们的相对顺序在排序过程中不会改变,所以基数排序也是稳定的。

10. 合并两个有序链表?

public class Solution {
    public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
        // 创建一个哨兵节点,方便处理边界情况
        ListNode dummy = new ListNode(0);
        // 初始化一个指针,用于构建合并后的链表
        ListNode current = dummy;

        // 当两个链表都不为空时,进行合并
        while (l1 != null && l2 != null) {
            if (l1.val <= l2.val) {
                // 将l1的当前节点连接到结果链表上
                current.next = l1;
                l1 = l1.next; // 移动l1的指针
            } else {
                // 将l2的当前节点连接到结果链表上
                current.next = l2;
                l2 = l2.next; // 移动l2的指针
            }
            // 移动结果链表的指针
            current = current.next;
        }

        // 如果l1还有剩余节点,直接连接到结果链表末尾
        if (l1 != null) {
            current.next = l1;
        }
        // 如果l2还有剩余节点,直接连接到结果链表末尾
        if (l2 != null) {
            current.next = l2;
        }

        // 返回合并后的链表的头节点(哨兵节点的下一个节点)
        return dummy.next;
    }
}

首先创建了一个哨兵节点(dummy node),来简化边界条件的处理。

使用一个循环来遍历两个链表,并根据当前节点的值将较小的节点连接到结果链表的末尾。

当其中一个链表遍历完成后,将另一个链表的剩余部分直接连接到结果链表的末尾。

最后,我们返回哨兵节点的下一个节点作为合并后链表的头节点。

面经原帖由牛客609584840号发布,答案由程序员Hasity整理。

alt

#23届找工作求助阵地#
校招面经大全 文章被收录于专栏

收录各个网友分享的各个公司的面经,并给出答案。

全部评论
更好的阅读体验:https://app6721.acapp.acwing.com.cn/interview/30
点赞 回复 分享
发布于 2024-08-14 23:36 河南

相关推荐

06-15 02:05
已编辑
南昌航空大学 数据分析师
Eason三木:你如果想干技术岗,那几个发公众号合唱比赛的经历就去掉,优秀团员去掉,求职没用。然后CET4这种不是奖项,是技能,放到下面的专业技能里或者单独列一个英语能力。 另外好好改改你的排版,首行缩进完全没有必要,行间距好好调调,别让字和标题背景黏在一起,你下面说能做高质量PPT你得展现出来啊,你这简历排版我用PPT做的都能比你做的好。 然后自我评价,你如果要干数据工程师,抗压能力强最起码得有吧。
简历中的项目经历要怎么写
点赞 评论 收藏
分享
评论
2
18
分享

创作者周榜

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