上一页 1 ··· 4 5 6 7 8 9 10 11 12 ··· 16 下一页
摘要: 二叉树 一、树的基本概念 节点、根节点、父节点、子节点、兄弟节点 一棵树可以没有任何节点,称为空树 一棵树可以只有一个节点,也就是只有根节点 子树、左子树、右子树 节点的度:子树的个数 树的度:所有节点度中的最大值 叶子节点:度为0的节点 非叶子节点:度不为0的节点 层数:根节点在第1层,根节点的子 阅读全文
posted @ 2023-12-06 20:25 Ac_c0mpany丶 阅读(50) 评论(0) 推荐(0)
摘要: 队列(Queue) 一、队列的基本概念 队列是一种特殊的线性表,只能在头尾两端进行操作 队尾(rear):只能从队尾添加元素,一般叫做enQueue,入队 队头(front):只能从队头移除元素,一般叫做deQueue,出队 先进先出的原则,FIRST IN FIRST OUT,FIFO 二、队列的 阅读全文
posted @ 2023-12-06 20:21 Ac_c0mpany丶 阅读(72) 评论(0) 推荐(0)
摘要: 栈(Stack) 一、栈的相关概念 栈是一种特殊的线性表,只能在一端进行操作 往栈中添加元素的操作,一般叫做push,入栈。 往栈中移除元素的操作,一般叫做pop,出栈(只能移除栈顶元素,也叫作:弹栈) 先进后出的原则:Last IN FIRST OUT,LIFO。 二、栈的接口设计 int siz 阅读全文
posted @ 2023-12-06 20:18 Ac_c0mpany丶 阅读(31) 评论(0) 推荐(0)
摘要: 链表 链表是一种链式存储的线性表,所有元素的内存地址不一定是连续的。 单向链表 一、单向链表的设计 1.1、不带虚拟头结点 public class LinkedList<E> { // 链表的节点数量 private int size; // 链表的头结点 private Node<E> firs 阅读全文
posted @ 2023-12-06 20:14 Ac_c0mpany丶 阅读(39) 评论(0) 推荐(0)
摘要: 动态数组 一、动态数组接口设计 // 这里可以写一个List接口,然后ArrayList类去实现这个接口,实现接口中的方法。但为了方便起见,直接将这些方法写在类中。 // 这些方法暂时不添加泛型、和正确的返回值 public class ArrayList { // 动态数组的长度 private 阅读全文
posted @ 2023-12-06 20:06 Ac_c0mpany丶 阅读(51) 评论(0) 推荐(0)
摘要: 时空复杂度 一、时间复杂度 时间复杂度:估算程序指令的执行次数(执行时间) 1.1 大O表示法(Big O) 一般用大O表示法来描述复杂度,它表示的是数据规模n对应的复杂度 它并不是用于来真实代表算法的执行时间,它是用来表示代码执行时间的增长变化趋势的 忽略常数、系数、低阶 9 —— O(1) 2 阅读全文
posted @ 2023-12-06 20:00 Ac_c0mpany丶 阅读(78) 评论(0) 推荐(0)
摘要: 题目描述 思路一:开辟两个数组,时间复杂度O(m + n) 开辟两个数组用来记录哪些行、哪些列需要置为零。 这样时间复杂度为O(m + n)。 思路二: 原地算法:不适用额外空间或者说常数级空间来实现算法。 类似于使用set保存每行每列是否需要置零, 方法一:对应思路一 class Solution 阅读全文
posted @ 2023-12-06 11:39 Ac_c0mpany丶 阅读(21) 评论(0) 推荐(0)
摘要: 题目描述 思路一:采用两次遍历 第一遍遍历先获取链表的长度length 第二次从dummy节点开始走length - n步 然后将该节点指向下下个节点 思路二:采用一次遍历 设置虚拟节点dummyHead指向head 设定双指针p和q,初始都指向虚拟节点dummyHead 移动q,直到p与q之间相隔 阅读全文
posted @ 2023-12-05 21:38 Ac_c0mpany丶 阅读(15) 评论(0) 推荐(0)
摘要: 题目描述 思路:新建dummy去"穿针引线" 新建一个dummy节点去"穿针引线" 注意最后返回的是dummy.next 方法一: /** * Definition for singly-linked list. * public class ListNode { * int val; * List 阅读全文
posted @ 2023-12-05 19:57 Ac_c0mpany丶 阅读(14) 评论(0) 推荐(0)
摘要: 题目描述 思路:快慢指针 slow指针:每次移动一个节点 fast指针:每次移动两个节点 如果链表中存在环,fast指针最终会在某一时刻追上slow指针,这是由于移动速度快的fast指针会在某个时刻绕圈并追上速度慢的slow指针 条件 fast != null && fast.next != nul 阅读全文
posted @ 2023-12-05 12:05 Ac_c0mpany丶 阅读(24) 评论(0) 推荐(0)
上一页 1 ··· 4 5 6 7 8 9 10 11 12 ··· 16 下一页