Skip to content

Latest commit

 

History

History
98 lines (58 loc) · 4.11 KB

README.md

File metadata and controls

98 lines (58 loc) · 4.11 KB

算法和数据结构(Java 实现)

笔记清单,持续更新

算法和数据结构学习中的一些小的工具函数

随机函数变换相关技巧

几种简单排序(冒泡排序,插入排序,选择排序)算法介绍

使用二分法来解决的一些问题

反转链表系列问题

用单链表实现栈和队列

删除链表指定节点

两个链表相加问题

合并两个及以上有序链表问题

链表K个节点的组内逆序调整问题

位图的设计与实现

使用位运算技巧实现加减乘除

使用位运算技巧比较两个数的大小

二叉树的先,中,后序遍历(递归,非递归)

相同二叉树和镜面二叉树问题

二叉树的最小(大)深度问题

重建二叉树问题

二叉树的按层遍历相关问题

  • 类似问题一: 二叉树自底向上层序遍历
  • 类似问题二:以数组的形式返回每一层节点的平均值
  • 类似问题三:填充每个节点的下一个右侧节点指针

使用二叉树的递归套路来解决的问题

  • 判断一棵树是否为平衡二叉树
  • 判断一棵树是否为搜索二叉树
  • 判断一棵树是否为完全二叉树

二叉树路径总和系列问题

与归并排序相关的一些问题

  • 归并排序递归和非递归解法
  • 合并两个有序数组
  • 计算右侧小于当前元素的个数问题
  • 2倍逆序对问题
  • 区间和的个数问题

荷兰国旗问题与快速排序算法

找到数组中出现特定次数数字的问题

  • 一个数组中有一种数出现了奇数次,其他数都出现了偶数次,怎么找到并打印这种数?
  • 一个数组中有两种数出现了奇数次,其他数都出现了偶数次,怎么找到并打印这两种数
  • 一个数组中有一种数出现 k 次,其他数都出现了 m 次,m > 1, k < m, 找到出现了 k 次的数

栈和队列相关的一些问题

  • 最小栈
  • 用双向链表实现双端队列
  • 栈和队列之间互相实现
  • 数组实现固定大小的队列

与堆和堆排序相关的问题

  • Heapify
  • HeapInsert
  • Heap Sort
  • 几乎有序数组的排序问题

与堆有关的问题:线段最大重合区域问题

  • 连接点算重合区域
  • 连接点不算重合区域

加强堆结构说明

使用加强堆解决 topK 问题

更多

算法和数据结构学习笔记:CSDN

算法和数据结构学习笔记:博客园

算法和数据结构学习代码: Github