
数据结构与算法
文章平均质量分 89
归思君
这个作者很懒,什么都没留下…
展开
-
动态规划算法题刷题笔记
首先看动态规划的三要素:重叠子问题、最优子结构和状态转移方程。重叠子问题:存在大量的重复计算最优子结构:状态转移方程:当前状态转移成以前的状态动态规划的解题步骤主要有:* 确定 dp 数组以及下标的含义* 状态转移方程、递推公式* dp数组初始化、遍历顺序* 写代码验证原创 2024-01-27 20:40:19 · 1883 阅读 · 0 评论 -
递归和迭代实现二叉树先序、中序、后序和层序遍历
这是由二叉树的结构所决定的,每个节点都有指向孩子节点的指针,但是没有指向父节点的指针,所以需要利用栈来实现子节点回到父节点的效果。因为递归方法无非是利用函数栈来保存信息,可以寻找相应的数据结构替代函数栈,同样可以实现相同的功能。Morris 遍历的实质就是避免利用栈结构,让下层节点拥有指向上层的指针,具体是通过让底层节点指向 null 的空闲指针指向上层的某个节点,到达子节点指向父节点的效果。和后序完全相反的顺序,然后再将该顺序逆序,最后得到后序遍历的顺序。利用队列来实现层序遍历。原创 2024-01-18 23:22:51 · 592 阅读 · 0 评论 -
从源码角度来谈谈 HashMap
HashMap的知识点可以说在面试中经常被问到,是Java中比较常见的一种数据结构。所以这一篇就通过源码来深入理解下HashMap。原创 2024-01-08 14:37:26 · 1059 阅读 · 0 评论 -
浅谈归并排序:合并 K 个升序链表的归并解法
如何实现多个升序链表的合并。这是 LeetCode 上的一道原题,题目具体如下原创 2024-01-08 14:15:07 · 1183 阅读 · 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 · 735 阅读 · 0 评论