![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法
文章平均质量分 89
归思君
这个作者很懒,什么都没留下…
展开
-
动态规划算法题刷题笔记
首先看动态规划的三要素:重叠子问题、最优子结构和状态转移方程。 重叠子问题:存在大量的重复计算 最优子结构: 状态转移方程:当前状态转移成以前的状态 动态规划的解题步骤主要有: * 确定 dp 数组以及下标的含义 * 状态转移方程、递推公式 * dp数组初始化、遍历顺序 * 写代码验证原创 2024-01-27 20:40:19 · 1787 阅读 · 0 评论 -
递归和迭代实现二叉树先序、中序、后序和层序遍历
这是由二叉树的结构所决定的,每个节点都有指向孩子节点的指针,但是没有指向父节点的指针,所以需要利用栈来实现子节点回到父节点的效果。因为递归方法无非是利用函数栈来保存信息,可以寻找相应的数据结构替代函数栈,同样可以实现相同的功能。Morris 遍历的实质就是避免利用栈结构,让下层节点拥有指向上层的指针,具体是通过让底层节点指向 null 的空闲指针指向上层的某个节点,到达子节点指向父节点的效果。和后序完全相反的顺序,然后再将该顺序逆序,最后得到后序遍历的顺序。利用队列来实现层序遍历。原创 2024-01-18 23:22:51 · 482 阅读 · 0 评论 -
从源码角度来谈谈 HashMap
HashMap的知识点可以说在面试中经常被问到,是Java中比较常见的一种数据结构。所以这一篇就通过源码来深入理解下HashMap。原创 2024-01-08 14:37:26 · 1001 阅读 · 0 评论 -
浅谈归并排序:合并 K 个升序链表的归并解法
如何实现多个升序链表的合并。这是 LeetCode 上的一道原题,题目具体如下原创 2024-01-08 14:15:07 · 1032 阅读 · 0 评论 -
用Java实现常见的8种内部排序算法
一、插入类排序 插入类排序就是在一个有序的序列中,插入一个新的关键字。从而达到新的有序序列。插入排序一般有直接插入排序、折半插入排序和希尔排序。 1. 插入排序 1.1 直接插入排序 /** * 直接比较,将大元素向后移来移动数组 */ public static void InsertSort(int[] A) { for(int i = 1; i < A.length; i++) { int temp = A[i]; //temp 用于存储元素,防止后面移动原创 2022-05-01 07:45:00 · 598 阅读 · 0 评论