字节跳动服务端开发秋招一面

    2024-11-12

    自我介绍

    毕业院校、项目经历、实习工作经历,简单介绍掌握的技能。

    算法题

    给定二叉树中指定节点和一个整数k,寻找距离指定节点距离为k的所有节点:

    要求:时间复杂度 $O(n)$, 空间复杂度 $O(n)$

    思路:如果给定节点为父结点,寻找距离其为 k 的节点可以...

    Read More

    拼多多服务端研发工程师秋招一面

    2024-11-05

    自我介绍

    毕业院校、项目经历、实习工作经历,简单介绍掌握的技能。

    算法题

    1. 实现一个前缀树,包括三种操作,插入单词、查询单词、查询前缀,自定义数据结构和方法,其中插入单词只包含小写字母,可以定义一个树结构,度为26

      Read More

    拼多多服务端开发实习一面

    2024-06-05

    自我介绍

    毕业院校、项目经历、实习工作经历,简单介绍掌握的技能。

    算法题

    将多个有序链表合并为一个有序链表;

    询问了经典的排序算法;

    改进:要求运行时间复杂度 $O(n\cdot log n)$,使用堆排序;

    问答环节 Read More

    C++智能指针

    2024-05-30

    如果在程序中使用new从堆(自由存储区)分配内存,等到不再需要时,应使用delete将其释放。C++引入了智能指针auto_ptr,以帮助自动完成这个过程。随后的编程体验(尤其是使用STL是)表明,需要有更加精致的机制。基于程序员的编程体验和BOOST库提供的解决方案,C++11摒弃了auto_ptr,并新增了三种智能指针:unique_ptr, shared_ptr和weak_ptr...

    Read More

    C++内存管理

    2024-05-23

    内存管理在C++中无处不在,内存泄漏更是每个C++程序中经常发生的错误,因此想要熟练掌握C++,内存管理是首先需要掌握的。

    1. C++内存管理详解

    在C++中,内存分为5个区域,分别是堆、栈、自由存储区、全局/静态存储区和常量存储区

    堆排序详解

    2024-05-20

    堆一般是指二叉堆,可以将一个堆看作是完全二叉树或者近似完全二叉树。

    一、堆的相关概念

    堆是一棵完全二叉树,每个节点的值都小于或等于其子节点的值,位小顶堆;反之位大顶堆。

    一般用数组来表示堆,下标为 $i$ 的节点的父节点下标为 $\frac{(i-1)}{2}$ ,其左右子节点分别为 $(2i+1)$、$(2...

    Read More
    View: User: