随笔分类 - 算法
摘要:「剑指offer」 JZ77-按之字形顺序打印二叉树 描述 给定一个二叉树,返回该二叉树的之字形层序遍历,(第一层从左向右,下一层从右向左,一直这样交替) 例如: 给定的二叉树是{1,2,3,4,5} 该二叉树之字形层序遍历的结果是 [ [1], [3,2], [4,5] ] 示例1 输入:{1,2
阅读全文
摘要:「剑指offer」JZ18-删除链表的节点 描述 给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。返回删除后的链表的头节点。 1.此题对比原题有改动 2.题目保证链表中节点的值互不相同 3.该题只会输出返回的链表和结果做对比,所以若使用 C 或 C++ 语言,你不需要 free
阅读全文
摘要:「剑指offer」 JZ55-二叉树的深度 描述 输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度,根节点的深度视为 1 。 数据范围:节点的数量满足 0-100,节点上的值满足0-100 进阶:空间复杂度O(1),时间复杂度O(
阅读全文
摘要:实现一个特殊的栈,在实现栈的基本功能的基础上,在实现返回栈中最小元素的操作 要求 pop,push,getMin操作的时间复杂度为$O(1)$。 设计的栈类型可以利用现成的栈结构 使用两个栈来实现,一个栈正常的放元素,另一个栈同时压入此时的最小值。 class SpStack{ private St
阅读全文
摘要:用数组结构实现大小固定的队列和栈 1. 队列 可以通过 start 和 end两个指针来控制队列的进出,通过设置size来简化判断队列状态。需要注意 nextIndex 方法,指针可以循环的在数组中跑起来,不许要担心数组指针位置问题。 class ArrayQueue { private stati
阅读全文
摘要:快速排序算法 快排算法与归并算法同样是采用的分治的思想,而归并的重点在于归并,快排的重点就在于划分,所以partition算法就很重要,也是很多题目解题的关键 快速排序的基本思想是任取待排序序列的一个元素作为中心元素(可以用第一个,最后一个,也可以是中间任何一个),习惯将其称为pivot,将所有比枢
阅读全文
摘要:归并排序 1. 基本思想 归并排序(MERGE-SORT)是利用归并的思想实现的排序方法,该算法采用经典的分治(divide-and-conquer)策略(分治法将问题分(divide)成一些小的问题然后递归求解,而**治(conquer)**的阶段则将分的阶段得到的各答案"修补"在一起,即分而治之
阅读全文

浙公网安备 33010602011771号