java是一种面向对象的语言,入口程序也是一个,类的属性有public,private,protected;

1
2
3
4
5
public class Main{
public class main(String arg[]){
System.out.println("helloworld!");
}
}

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
2
PriorityQueue<T>pq = new PriorityQueue<>(); //最小堆
PriorityQueue<T>pq = new PriorityQueue<>(Comparation.reverseOrder()); //最大堆

数组中的第k个最大元素
前k个高频元素
根据字符出现频率排序
最接近原点的 K 个点

2025.5.23

树 递归法

DFS用递归,BFS用队列,总结一下:充分利用好前中后序列以及层序遍历,善用队列以及递归。
二叉树的前序遍历
二叉树的中序遍历
二叉树的后序遍历
二叉树的层序遍历
二叉树的层序遍历Ⅱ
二叉树的锯齿形层次遍历
相同的树
对称二叉树
二叉树的右视图
翻转二叉树
平衡二叉树
二叉树的最大深度
二叉树的最小深度
路经总和
完全二叉树的节点个数

图的遍历,回溯

2025.5.24 && 2025.5.25
全排列
路径总和Ⅱ
全排列
图像渲染
单词搜索
岛屿数量

2025.5.26
被围绕的区域
飞地的数量

简单的动态规划

斐波那契数
爬楼梯
解码方法

2025.5.28
最大子数组和