自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(5)
  • 收藏
  • 关注

原创 2021字节跳动校招秋招算法面试真题解题报告--leetcode19 删除链表的倒数第 n 个结点,内含7种语言答案

2021字节跳动校招秋招算法面试真题解题报告--leetcode19 删除链表的倒数第 n 个结点,内含7种语言答案 1.题目描述 给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。 进阶:你能尝试使用一趟扫描实现吗? 2.解题报告 在对链表进行操作时,一种常用的技巧是添加一个哑节点(dummy node),它的 \textit{next}next 指针指向链表的头节点。这样一来,我们就不需要对头节点进行特殊的判断了。 例如,在本题中,如果我们要删除节点 yy,我们需要知道节点 yy 的前驱

2021-08-14 17:50:54 128

原创 2021字节跳动校招秋招算法面试真题解题报告--leetcode148 排序链表,内含7种语言答案

148.排序链表 1.题目描述 在 O(n log n) 时间复杂度和常数级空间复杂度下,对链表进行排序 2.解题报告 针对nlogn的排序算法,主要有快速排序,归并排序和堆排序。其中,堆排序利用了数组的连续特性。所以这里不能采用。其次,在快速排序中,设计大量数字的交换且单链表因为只能单向遍历,使用partition不是很直观。 所以,本题采用归并排序链表版来实现。 具体思路如下: 1.使用快慢指针,找到链表的中点。 2.对链表的前半部分和后半部分分别排序。 3.将两部分合并。 代码 /** * Defi

2021-08-10 18:33:02 219

原创 2021字节跳动校招秋招算法面试真题解题报告--leetcode206 反转链表,内含7种语言答案

206.反转链表 1.题目描述 反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL进阶:你可以迭代或递归地反转链表。你能否用两种方法解决这道题? 2.解题报告 思路1:借助栈 利用栈先进后出的特点,将每个节点按顺序存入栈中,再从顶到底连接栈中的每个节点 注意要将翻转后的最后一个节点(即原链表的第一个节点)的next置为nullptr,不然后果可想而知~ 思路2:就地操作(推荐) 逐个

2021-08-10 18:06:56 197

原创 2021字节跳动校招秋招算法面试真题解题报告--leetcode148 排序链表,内含7种语言答案

148.排序链表 1.题目描述 在 O(n log n) 时间复杂度和常数级空间复杂度下,对链表进行排序 2.解题报告 针对nlogn的排序算法,主要有快速排序,归并排序和堆排序。其中,堆排序利用了数组的连续特性。所以这里不能采用。其次,在快速排序中,设计大量数字的交换且单链表因为只能单向遍历,使用partition不是很直观。 所以,本题采用归并排序链表版来实现。 具体思路如下: 1.使用快慢指针,找到链表的中点。 2.对链表的前半部分和后半部分分别排序。 3.将两部分合并。 代码 /** * Defi

2021-08-10 17:16:13 188

原创 2021字节跳动校招秋招算法面试真题解题报告--leetcode148 排序链表,内含7种语言答案

## 148.排序链表 ### 1.题目描述 在 O(n log n) 时间复杂度和常数级空间复杂度下,对链表进行排序 ### 2.解题报告 针对nlogn的排序算法,主要有快速排序,归并排序和堆排序。其中,堆排序利用了数组的连续特性。所以这里不能采用。其次,在快速排序中,设计大量数字的交换且单链表因为只能单向遍历,使用partition不是很直观。 所以,本题采用归并排序链表版来实现。 具体思路如下: 1.使用快慢指针,找到链表的中点。 2.对链表的前半部分和后半部分分别排序。 3.将两部分合并。

2021-08-10 17:10:38 111

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除