Skip to content

GreyZeng/algorithm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

笔记清单,持续更新

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

随机函数变换相关技巧

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

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

反转链表系列问题

用单链表实现栈和队列

删除链表指定节点

两个链表相加问题

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

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

位图的设计与实现

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

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

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

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

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

重建二叉树问题

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

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

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

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

二叉树路径总和系列问题

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

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

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

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

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

栈和队列相关的一些问题

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

与堆和堆排序相关的问题

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

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

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

加强堆结构说明

使用加强堆解决 topK 问题

更多

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

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

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