自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(40)
  • 收藏
  • 关注

原创 Git提交信息

一个好的 Git 提交信息能清晰记录项目的演变,方便团队协作和问题追溯。

2025-08-30 09:54:09 276

原创 Git提交

当你本地分支上有许多零碎的、无意义的提交(如 fix typo, add console.log)时,在推送到远程仓库前,应使用 git rebase -i 来清理和合并它们。一个好的 Git 提交历史就像一本组织有序的日记,它能让团队成员快速理解项目的发展脉络,方便代码审查和问题追溯。一个提交应只做一件事。每次只提交一个功能、一个 Bug 修复或一个重构,避免混合多个不相关的改动。一个干净的提交历史,能让项目维护变得更加轻松,它不仅是技术能力,更是一种专业的协作素养。核心是让每一次提交都代表一个。

2025-08-30 09:53:01 314

原创 SQL II

用来解决交叉表将表进行叉乘之后再筛选是关系型数据库中一种常用的连接操作,它在两个表中根据(通常是主键和外键)进行连接。自然连接会自动匹配两个表中列名相同的字段,并且去除重复的列。

2024-12-07 15:44:19 944

原创 SQL入门

DDL 是用于定义、修改、删除数据库结构和对象(如表、视图、索引等)的 SQL 子集。它描述了数据库中的结构,包括表的创建、删除、修改以及其他对象的定义。修订schema 修改和删除列。

2024-11-19 18:13:25 597

原创 JZ31 栈的压入、弹出序列

栈是一种仅支持在表尾进行插入和删除操作的线性表,这一端被称为栈顶,另一端被称为栈底。元素入栈指的是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;元素出栈指的是从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。

2024-11-14 10:19:48 258

原创 Radix Sorts

顺序比较算法的时间复杂度的下界只要是顺序比较最坏情况下时间复杂度不可能比这个更好因为要确定N个的关系,至少要lgN!次比较数学上,lgN!又近似NlogN。

2024-11-08 14:19:44 451

原创 JZ12 矩阵中的路径

DFS:遍历图递归:递归是一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解。因此递归过程,最重要的就是查看能不能讲原本的问题分解为更小的子问题,这是使用递归的关键。如果是线型递归,子问题直接回到父问题不需要回溯,但是如果是树型递归,父问题有很多分支,我需要从子问题回到父问题,进入另一个子问题。

2024-11-06 16:45:50 362

原创 JZ8二叉树的下一个结点

前置知识中序遍历:先遍历左子树,根节点,右子树做法先找到整个树的根节点进行中序遍历,全部节点放入list与目标节点进行对比,返回后一个节点。

2024-11-05 16:15:01 316

原创 JZ7 重建二叉树

类的一个静态方法,用于复制数组的指定范围。这个方法可以用来创建一个新的数组,并将原数组中指定范围内的元素复制到新数组中。前序遍历用来获取根节点。中序遍历用来区分子树。

2024-11-04 15:40:33 339

原创 JZ5 替换空格

是 Java 中一个用于创建可变字符串的类,适合在需要频繁修改字符串的场合使用。在拼接字符串时更高效,因为它不会在每次修改时都生成新的对象。charAt()第几个位置的字符。

2024-11-03 12:26:08 196

原创 快速排序入门

找一个中枢(pivot),将它放在正确的位置以他为界,左右继续找中枢,直到全部排好也是把大问题不断分为小问题,形成子树。

2024-10-21 20:40:11 187

原创 排序基础方法

一个序列中存在元素对,顺序与理想顺序相反。

2024-10-18 18:18:06 209

原创 Dynamic Programming(动态规划)

将复杂问题拆解为一系列简单的小问题来依次解决,通过保存子问题的结果,有效避免重复计算。

2024-10-12 15:18:18 386

原创 docker入门

一种虚拟化软件让应用程序的开发和部署变得简单将所有的文件打包进container(容器),包括代码,库,依赖项,环境配置。总而言之就是应用程序和他的运行环境。

2024-10-12 10:40:06 723

原创 Maven入门

在 Maven 中,父项目提供了一种方式来集中管理多个子项目的依赖、插件和构建配置,减少重复配置,并确保所有子项目共享相同的构建环境和依赖版本。此后我不用手动下载和配置MP3库,它会自动从网站上下载,但要用的时候还是需要import。IDEA中的插件Ctrl + Shift + M搜索maven,可以直接复制,非常方便。子项目中需要指定父项目(在packaging中,父项目是poem,子项目是jar):compile所有的src底下的main/java文件,放入target,:在编译成功后,将项目打包成。

2024-10-12 00:04:44 489

原创 Minimum Spanning Tree(MST最小生成树)

全部节点都是连接的(connected)无环的(acyclic)上面两个构成了树包括了所有的顶点这个特征构成了最小生成树。

2024-10-10 16:17:10 463

原创 最短路径(ShortestPaths)

是用于寻找图中单源最短路径的经典算法。该算法主要解决从一个顶点到其他所有顶点的最短路径问题,适用于带有非负权重的有向图或无向图。全部设置为无限大然后从原点开始走一个优先序列储存出顺序,因为这个算法采用了贪心策略,一旦弹出了优先队列,他就一定是最短路径,不可能更短了。如果比自身储存的值加起来小,储存新的值,并且保存他的父节点谁小谁先出栈。

2024-10-10 06:46:17 314

原创 Graph图

通常用递归通常用queue(队列)

2024-10-08 17:40:29 4448 2

原创 平衡二叉树(BTS)

任意节点的左右子树高度差不能超过1。

2024-09-30 23:49:50 269

原创 Heap数据结构

处理相同优先级的项目方便(bushy BST就不行)

2024-09-29 12:35:27 233

原创 hashcode

放在代表这个整数的index下面作用:快速比较相等。

2024-09-28 11:36:30 293

原创 static

定义:静态变量属于类而不属于实例。可以直接通过类名字访问创造一个新实例不会创造一个新的静态变量,只存在一份。

2024-09-24 13:22:34 362

原创 String的方法

【代码】String的方法。

2024-09-24 13:15:33 395

原创 final关键字

一个类被定义为final,意味着不能被继承,这样可以防止类的行为被修改。

2024-09-24 13:05:05 211

原创 Disjoint Set

connect()

2024-09-23 14:26:12 223

原创 JZ22 链表中倒数最后k个结点

【代码】JZ22 链表中倒数最后k个结点。

2024-09-22 21:26:55 223

原创 JZ23 链表中环的入口结点

用一个Arraylist储存listnode所有节点,每次检查是否已经出现过,如果有,就返回这个节点。没有环(指针最终会指向null)只有环(结尾会指向起点)

2024-09-22 20:54:58 531

原创 JZ25 合并两个排序的链表

然后每判断出一个大小,被指的那一个链表自动进一,如此循环。因为是按递增次序,不知道list1和list2谁的头小。设置了两个置空的变量指向这个新list的头和尾。要重点掌握递归这种方法,优美简洁易读。

2024-09-21 00:42:14 254

原创 JZ6 从尾到头打印链表

*栈操作(**

2024-09-20 20:02:24 647

原创 GO的变量

因为go的语法更加现代,注重于可读性,所以是变量类型在变量名的后面这种命名用于编译器无法自动识别类型的时候精确控制变量的类型。

2024-09-18 14:22:42 481

原创 GO的简介

Go的依赖库全部绑定在一起,全部都绑定进了可执行文件之中(单一二进制文件)Go是静态类型,变量类型在编译的时候已经确定,编译器会检查类型正确性。Go是强类型,不会进行隐式的类型转换,避免了类型错误。并发,相比传统的线程模型,go并发模型更加轻量,简洁。

2024-09-18 13:45:10 277

原创 Java的对比器

因为java无法像python和c++一样重新定义操作符,想要对比类,只能继承接口comparator,来保证类有一个对比方法。如果我们自己写一个OurComparable接口的话,必须做强制类型转换。需要多种类型的比较,在python中可以直接传入不同的对比函数。有一个compareTo方法(泛型)通常作用是自己与自己进行比较。

2024-09-15 08:44:29 365

原创 Java的迭代器接口

也是接口,表示一个可以被迭代的集合对象,实现了这个接口的类可以使用enhanced loop增强型for-each进行遍历。Iterator是java中用于遍历集合中元素的一个接口,提供了一种通用方法来遍历集合中的元素。

2024-09-15 00:15:48 365

原创 Java异常处理(Exception)

红色的错误检测到必须提供catch解决方案,蓝色的错误因为无法预料原因,所以可以不写。主程序如果调用了危险的函数,也必须要catch才行,除非把主程序也设置为危险的函数。:e是异常变量的名字,并不是异常类的一部分,可以用其他名字代替。防止程序崩溃,用来检测可能出现的问题,并且提供可能的解决方案。这个错误可以是Exception通用的错误检测,也可以写的具体。写出要执行的操作,然后统一的写出catch可能产生的错误。可以在函数签名里写红色的错误,也可以不提供解决方法。

2024-09-15 00:04:21 289

原创 Java继承

用子类类型传给父类,编译器会通过,他会找到类的列表,发现animal是object的子类。但是让aniaml = 传回的object类,就会报错,无法确定这个object类是否具有animal的方法,让编译器不安。关键字继承一个接口的时候,必须提供接口中的所有方法,(接口中的所有方法默认public abstract)否则报错。一个接口继承另一个接口,被继承的接口方法都会自动的隐式继承在子类接口,但是不用实现,用。我用父类的方法new一个子类的类型,他的静态类型就是父类,动态类型就是子类。

2024-09-13 08:57:57 360

原创 Java的code规范

逗号前面不加空格,后面要加,(例如:(L, K))加减乘除的前后都要加空格。{}的前后都必须空格。

2024-09-13 00:45:25 357

原创 Java泛型编程

泛型编程极大的方便了对不同变量的处理,优化了代码的可读性,和美观,也减少了大量的重复工作,还增加了代码的安全性(如果没有泛型编程,通常会充斥着各种强行的cast强制转换)。如果为每一种类型都写一个类来适配,会造成code冗长且难读,所以需要写一个同一的抽象的方法来实现,并让编译器自动的传入这些类型。这段代码的意思是接受K类型的a和b参数,返回较大的一个,因为不确定k的具体类型,比较就变得尤为困难。为类型参数施加了限制,必须是compareTo实现了的类型。格外还有提到的一点是,泛型类型是可以实现接口的。

2024-09-13 00:17:32 452

原创 java数组难点

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档。

2024-08-29 22:41:40 356

原创 Java入门笔记

变量和函数返回值的类型永远不能改变所有java程序在运行之前就被验证了(更好的捕捉错误,方便了debug,在用户端永远不会发生类型错误)

2024-08-27 05:33:58 389

原创 Git的入门基础使用方法

git clone的同时会remote与远程库建立连接,reo在文件夹里面。rm -rf .git强制删除库远程仓库和本地库文件不匹配也无法上传删除本地库和远程库是完全不同的操作git的操作是上工上岗的基本功,每个计算机的学习者都需要扎实掌握,也有图形化的GitHub desktop,使用感觉其实还不如git bash用命令来得方便。后续也会持续更新遇到的问题。

2024-08-27 05:27:26 1263 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除