摘要: 2. 两种特殊的二叉树 满二叉树 定义:一棵深度为 k 且有 2^k - 1 个结点的二叉树称为满二叉树。 特点: 每一层上的结点数都是最大结点数(即每层都满); 叶子结点全部在最底层; 对满二叉树结点位置进行编号 编号规则:从根结点开始,自上而下,自左而西; 每一结点位置都有元素; 完全二叉树 定 阅读全文
posted @ 2023-02-26 11:19 凉白茶 阅读(226) 评论(0) 推荐(0) 编辑
摘要: 一、 大小固定的滑动窗口 例题: 解答: class Solution { public: int minimumDifference(vector<int>& nums, int k) { int n = nums.size(); sort(nums.begin(), nums.end()); i 阅读全文
posted @ 2023-02-22 14:38 凉白茶 阅读(38) 评论(0) 推荐(0) 编辑
摘要: 快慢指针问题 **思路:**定义两个指针,一个快指针(fastp),一个慢指针(slowp),在单链表中,让快慢指针同时从同一位置,向后遍历,他们每次的步数都固定,比如慢指针每次向后移动1步,快指针移动2步,当快指针到达最后时,慢指针就是中间位置,主要是明白他们的每一步的差是恒定的,所以两个指针的路 阅读全文
posted @ 2023-02-19 17:27 凉白茶 阅读(68) 评论(0) 推荐(0) 编辑
摘要: # 集合 ### 一、 集合的理解和好处 前面保存多个数据使用的是数组,那么数组有不足的地方,分析一下 - 数组 1. 长度开始时必须指定,而且一旦指定,不能更改; 2. 保存的必须为同类型的元素; 3. 使用的数组进行增加/删除元素,比较麻烦; ```java //写出Person数组扩容的示意代 阅读全文
posted @ 2023-02-15 18:23 凉白茶 阅读(89) 评论(0) 推荐(0) 编辑
摘要: 大数处理方案 BigInteger 适合保存比较大的整数。 public class BigInteger_ { public static void main(String[] args) { //当我们编程中,需要处理很大的整数,long不够用 //可以使用BigInteger的类来搞定 // 阅读全文
posted @ 2023-02-14 15:43 凉白茶 阅读(117) 评论(0) 推荐(0) 编辑
摘要: 二叉树的遍历 一、二叉树的遍历算法 可以将二叉树的遍历分为:先序遍历 (根、左、右),中序遍历 (左、根、右),后序遍历 (左、右、根) 先序遍历动画 (根、左、右) 中序遍历动画 (左、根、右) 后序遍历动画 (左、右、根) 二、根据遍历序列确定二叉树 若二叉树中各结点的值均不同,则二叉树节点的先 阅读全文
posted @ 2023-02-03 15:32 凉白茶 阅读(152) 评论(0) 推荐(0) 编辑
摘要: 日期类 一、第一代日期类 Date Date:第一代日期类,精确到毫秒,代表特定的瞬间。 SimpleDateFormat:格式化和解析日期的具体类。它允许进行格式化(日期 -> 文本)、解析(文本 -> 日期)和规范化。 SimpleDateFormat日期-时间格式模式参数: Letter Da 阅读全文
posted @ 2023-02-01 18:26 凉白茶 阅读(420) 评论(0) 推荐(0) 编辑
摘要: System类 exit:退出当前程序。 arraycopy:复制数组元素,比较适合底层调用,一般使用Arrays.copyOF完成复制数组。 currentTimeMillens:返回当前时间距离 1970-1-1 的毫秒数。 gc:运行垃圾回收机制 System.gc(); public cla 阅读全文
posted @ 2023-01-23 15:40 凉白茶 阅读(341) 评论(0) 推荐(0) 编辑
摘要: 树和森林 一、树的存储结构 双亲表示法 实现:定义结构数组,存放树的结点,每个结点含两个域 数据域:存放结点本身信息。 双亲域:指示本结点的双亲结点在数组中的位置。 特点:找双亲容易,找孩子难。 C语言的类型描述: typedef struct PTNode{ TElemType data; int 阅读全文
posted @ 2023-01-20 19:45 凉白茶 阅读(17) 评论(0) 推荐(0) 编辑
摘要: 图的存储结构 图的逻辑结构:多对多 图没有顺序存储结构,但可以借助二维数组来表示元素之间的关系,即数组表示法(邻接矩阵) 链式存储结构:多重链表(邻接表、邻接多重表、十字链表) 一、数组(邻接矩阵)表示法 建立一个顶点表(记录各个顶点信息)和邻接矩阵(表示各个顶点之间的关系)。 设图 A = (V, 阅读全文
posted @ 2023-01-19 23:08 凉白茶 阅读(345) 评论(0) 推荐(0) 编辑
摘要: Arrays类 一、Arrays类常见方法 Arrays里面包含了一系列静态方法,用于管理或操作数组(比如排序和搜索)。 toString 返回数组的字符串形式 Arrays.toString(arr) sort排序(自然排序和定制排序) import java.util.Arrays; impor 阅读全文
posted @ 2023-01-18 20:25 凉白茶 阅读(117) 评论(0) 推荐(0) 编辑
摘要: StringBuilder类 一、结构剖析 一个可变的字符序列。此类提供一个与 StringBuffer 兼容的 API,但不保证同步(StringBuilder 不是线程安全的)。该类被设计用作 StringBuffer 的一个简易替换,==用在字符串缓冲区被单个线程使用的时候==。如果可能,建议 阅读全文
posted @ 2023-01-16 23:40 凉白茶 阅读(106) 评论(0) 推荐(0) 编辑
摘要: StringBuffer类 一、 结构剖析 Java.lang.StringBuffer 代表可变的字符序列,可以对字符串内容进行增删。 很多方法与String相同,但StringBuffer是可变长度的。 StringBuffer是一个容器。 String VS StringBuffer Stri 阅读全文
posted @ 2023-01-14 21:23 凉白茶 阅读(148) 评论(0) 推荐(0) 编辑
摘要: String类 一、String类的理解和创建对象 结构剖析 String 对象用于保存字符串,也就是一组字符序列; 字符串常量对象是用双引号括起来的字符序列。例如:jack"字符串常量; 字符串的字符使用Unicode字符编码,一个字符(无论汉字还是字母)占两个字节; String类 有很多构造器 阅读全文
posted @ 2023-01-09 18:30 凉白茶 阅读(175) 评论(0) 推荐(0) 编辑
摘要: 结论:final 修饰对象,对象的内容可变,引用不可变。 final 应用于类、方法和变量、对象时意义是不同的,但本质是一样的,都表示不可改变。 但是修饰对象时要注意:因为对象是引用类型,存储的是地址,所以final修饰之后,指的是引用地址不可变。 案例: final char[] chars = 阅读全文
posted @ 2023-01-06 15:21 凉白茶 阅读(253) 评论(0) 推荐(0) 编辑