Skip to content

🍀 Java开发者的基础学习库,语言,数据结构,算法以及题解

Notifications You must be signed in to change notification settings

3218870799/algorithmPractice

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

KnowledgePractice

📊 ⚔️ 🖥 🚏 🏖 🌁 📮 🔍 🚀 🌈 💡
Java源码解析 数据结构 经典算法 经典问题 功能函数 LeetCode题解 待更 待更 待更 待更 联系作者

一:Java深入理解与源码分析

为方便管理,此部分​​已迁移整理至Github项目-Note ——Java基础,欢迎浏览提出建议

👟建议下载使用Typora软件进行查看与编辑,效果更佳哦!

1:基本的程序设计结构 🚥

数据类型

为什么Java要把字符串设计成不可变的

基本数据类型与引用数据类型的传递方式

Java中的四种引用类型

关键字

彻底搞懂volatile关键字
synchronized关键字

2:对象与类

Java对象的创建过程:类的初始化与实例化

3:Java面向对象的特性

重写与重载





4:Java中常用的对象与方法

一次性搞清楚equals和hashCode

5:异常,日志,断言和调试

Java中try,catch,finally的细节分析

7:集合

ArrayList工作原理及实现
Java7/8 中的HashMap 和 ConcurrentHashMap

9:反射

反射机制

10:IO流

NIO浅析

二:数据结构

数组


链表



队列

矩阵相关 🚧

正反矩阵打印与之字打印

二叉树相关 🌊

二叉树认知

2-3树
BST树
AVL树
RBT红黑树
哈夫曼树

形象打印二叉树
判断是否是平衡二叉树

窗口相关 🎡





三:经典算法

https://www.cnblogs.com/nullering/p/9536339.html欢迎各位指导!

基础算法:four_leaf_clover:

枚举
递推
贪心
递归
分治
构造
模拟
排序
检索

排序 ❤️

比较排序

基础认知:Java集合
冒泡排序
选择排序
直接插入排序
快速排序
归并排序
堆排序

非比较排序

计数排序
基数排序
桶排序

典型基础 🚠

KMP算法
布隆过滤器
一致性哈希

图论相关算法

广度优先搜索BFS
Warshall算法
Floyed算法
Prim算法
Kruskal算法
Dijkstra算法
并查集

数论计算

求最大公约数与最小公倍数
组合
大数加法减法乘法
矩阵
线性筛

字符串

最长公共子序列 最长上升子序列

四:经典问题

旅行商问题
凸包问题
曼哈顿问题
n皇后问题

五:常用功能类与功能函数

微信支付工具类
字符排列数工具类
字符编码工具类
数据类型转换工具类

常见加密算法工具类

Base64加密Demo
MD5加密Demo

字符串处理工具类







六:LeetCode题解 🚡





>> 该部分答案多为本人刷题的题解,部分问题没有官方解答,所以贡献一份思路,并将最优解答Copy至此,便于向高手学习

题目描述请移步LeetCode

数组 链表 字符串 哈希表 队列
15:三数之和 19:删除链表的倒数的第N个节点 6:Z字形变换 待更 622:设计循环队列
16:最接近的三数之和 21:合并两个有序链表 12:整数转罗马数字 待更 待更
26: 删除排序数组中的重复项 24:两两交换链表中的节点 13:罗马转整数 待更 待更
27: 移除元素 141:判断链表是否有环 14:最长公共前缀 待更 待更
33: 在旋转排序数组中搜索 142:返回虚幻链表中的进环节点 17:电话号码的字母组合 待更 待更
105: 从前序与中序序列构件二叉树 206:反转链表 20:有效的括号 待更 待更
待更 待更 125:验证回文串 待更 待更
递归
225: 用队列实现栈结构 687:最长同值路径 待更 待更 待更
232: 用栈实现队列 待更 待更 待更 待更
排序 拓扑排序 深度优先搜索 二分查找 双指针 广度优先搜索
待更 待更 待更 待更 待更 待更
贪心算法 回溯算法 分治算法 动态规划
待更 待更 待更 待更

七:项目说明:hammer:

本项目一开始使用简单的java项目创建,后随着内容逐渐丰富,先变成Maven项目进行管理。

使用不同开发工具对本项目进行开发,方法不唯一,只是提供一个参考

1:使用Eclipse

1:使用Git克隆到本地

image-20201114164053895

2:工作区导入已存在的Maven项目

image-20201114164240301

3:选择克隆的项目即可

2:IDEA

1:使用Git克隆到本地

2:直接选择Open or import 导入IDEA

image-20201114164434509

3:解决单个类方法错误影响其他类的运行/错误: 找不到或无法加载主类

选择setting,将编译器改成Eclipse

找到Run ——Edit Configuration

将Build点减号删掉选择Build No erroe check

在这里插入图片描述

联系作者 🌺








待更 🍀

About

🍀 Java开发者的基础学习库,语言,数据结构,算法以及题解

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages