javaAlgorithm
java是一种面向对象的语言,入口程序也是一个类,类的属性有public,private,protected;
1 | public class Main{ |
2025.5.19
二分查找
应用场景:有序 数组
二分三元素 :left,mid,right
目标可能存在的区间,在[left,right]之间,所以循环条件就是他。
循环变更的是:left和right,是基于这一次选择的mid来变更的,而不是left和right++ / –1;
时间复杂度:logN
二分查找
猜数字大小
搜索插入位置
在排序数组中查找元素的第一个和最后一个位置
寻找旋转排序数组中的最小值
第一个错误的版本
山脉数组的峰顶索引
搜索旋转排序数组
搜索旋转排列数组Ⅱ
山脉数组中查找目标值
2025.5.20
滑动窗口
栈
栈中使用push()/pop()来 添加/删除元素,peek()查看栈顶元素
简化路径StringBuilder以及字符串切割
逆波兰表达式
有效的括号
2025.5.21
双指针
2025.5.22
堆
优先队列视为堆,默认是最小堆,堆中使用add()/poll() 进行添加/删除元素,peek查看堆顶元素
1 | PriorityQueue<T>pq = new PriorityQueue<>(); //最小堆 |
数组中的第k个最大元素
前k个高频元素
根据字符出现频率排序
最接近原点的 K 个点
2025.5.23
树 递归法
DFS用递归,BFS用队列,总结一下:充分利用好前中后序列以及层序遍历,善用队列以及递归。
二叉树的前序遍历
二叉树的中序遍历
二叉树的后序遍历
二叉树的层序遍历
二叉树的层序遍历Ⅱ
二叉树的锯齿形层次遍历
相同的树
对称二叉树
二叉树的右视图
翻转二叉树
平衡二叉树
二叉树的最大深度
二叉树的最小深度
路经总和
完全二叉树的节点个数
图的遍历,回溯
2025.5.24 && 2025.5.25
全排列
路径总和Ⅱ
全排列
图像渲染
单词搜索
岛屿数量
简单的动态规划
2025.5.28
最大子数组和
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Explainfuture's Blog!