拼多多服务端开发实习一面
自我介绍
毕业院校、项目经历、实习工作经历,简单介绍掌握的技能。
算法题
将多个有序链表合并为一个有序链表;
询问了经典的排序算法;
改进:要求运行时间复杂度 $O(n\cdot log n)$,使用堆排序;
问答环节
Read More
C++智能指针
如果在程序中使用new从堆(自由存储区)分配内存,等到不再需要时,应使用delete将其释放。C++引入了智能指针auto_ptr,以帮助自动完成这个过程。随后的编程体验(尤其是使用STL是)表明,需要有更加精致的机制。基于程序员的编程体验和BOOST库提供的解决方案,C++11摒弃了auto_ptr,并新增了三种智能指针:unique_ptr, shared_ptr和weak_ptr...
Read More
C++调用openssl实现AES-ctr加密模式
AES128-CTR方式,属于对称加密的一种,之前的博客里有讲过加密的过程。
使用OpenSSL实现的示例代码:
#include
Read More
C++内存管理
内存管理在C++中无处不在,内存泄漏更是每个C++程序中经常发生的错误,因此想要熟练掌握C++,内存管理是首先需要掌握的。
1. C++内存管理详解
在C++中,内存分为5个区域,分别是堆、栈、自由存储区、全局/静态存储区和常量存储区
- 堆,由
Read More
堆排序详解
堆一般是指二叉堆,可以将一个堆看作是完全二叉树或者近似完全二叉树。
一、堆的相关概念
堆是一棵完全二叉树,每个节点的值都小于或等于其子节点的值,位小顶堆;反之位大顶堆。
一般用数组来表示堆,下标为 $i$ 的节点的父节点下标为 $\frac{(i-1)}{2}$ ,其左右子节点分别为 $(2i+1)$、$(2...
Read More
Python安装后pip无法正常使用
C++智能指针
如果在程序中使用new从堆(自由存储区)分配内存,等到不再需要时,应使用delete将其释放。C++引入了智能指针auto_ptr,以帮助自动完成这个过程。随后的编程体验(尤其是使用STL是)表明,需要有更加精致的机制。基于程序员的编程体验和BOOST库提供的解决方案,C++11摒弃了auto_ptr,并新增了三种智能指针:unique_ptr, shared_ptr和weak_ptr...
C++调用openssl实现AES-ctr加密模式
AES128-CTR方式,属于对称加密的一种,之前的博客里有讲过加密的过程。
使用OpenSSL实现的示例代码:
#include
Read More
C++内存管理
内存管理在C++中无处不在,内存泄漏更是每个C++程序中经常发生的错误,因此想要熟练掌握C++,内存管理是首先需要掌握的。
1. C++内存管理详解
在C++中,内存分为5个区域,分别是堆、栈、自由存储区、全局/静态存储区和常量存储区
- 堆,由
Read More
堆排序详解
堆一般是指二叉堆,可以将一个堆看作是完全二叉树或者近似完全二叉树。
一、堆的相关概念
堆是一棵完全二叉树,每个节点的值都小于或等于其子节点的值,位小顶堆;反之位大顶堆。
一般用数组来表示堆,下标为 $i$ 的节点的父节点下标为 $\frac{(i-1)}{2}$ ,其左右子节点分别为 $(2i+1)$、$(2...
Read More
Python安装后pip无法正常使用
