自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 java:错误:不支持发行版本

有时候新建一个Java项目后,运行起来就会提示这样的错误。首先点击file的project。

2024-05-01 15:31:52 70

原创 贪心算法 Greedy Algorithm

一般来说,对于规模较小的问题,贪心算法的时间复杂度可以达到O(nlogn)或O(n^2);答:一个问题如果可以用递归的方式分解成若干个子问题,且每个子问题都有明确的最优解(即局部最优),那么这个问题就可以用贪心算法解决。贪心算法是一种在每一步选择中都采取在当前状态下最好或最优(即最有利)的选择,从而希望导致结果是最好或最优的算法。背包问题:给定一组物品和一个背包,每个物品有一定的重量和价值,要求在不超过背包容量的情况下,尽可能多地装入物品。找零问题:给定一定数量的硬币和需要找零的金额,求使用最少的硬币数。

2024-05-01 09:34:30 483

原创 Dynamic-Programming

Those“那些忘记历史的人注定重蹈覆辙”这句话出自美国哲学家乔治·桑塔亚那之手,准确地说,这句话可以被引用为他在《理性的生活:常识中的理性》一书中所说的“那些不记得过去的人注定重蹈覆辙“Those who cannot remember the past are condemned to repeat it” 这句话忘记是在哪里看到的了,但是我觉得用在动态规划这个章节,真的很合适!

2024-05-01 09:31:18 401

原创 回溯Backtracking Algorithm

因为它只考虑了 start 一种情况,而实际在循环内要处理的是 start,start+1 ... n 这多种情况。n - i +1 还剩下几个备用数字 if(k-stack.length >n-i+1) continue;(即 1 和 1‘ 这种情况),进一步检查 i-1 位置的数字有没有 visited,没有,则不处理(剪枝)定好规则:必须 1 固定之后才能固定 1',即 1 的 visited = true 才能继续处理 1'如果用的是可变的集合或者数组必须手动的恢复集合状态。

2024-04-30 21:26:47 504

原创 Huffman编码

java

2024-04-28 15:40:34 840

原创 贪心算法-活动选择问题&背包问题

11 |-------) 3 选中。1 |-------) 3 选中。6 |-------) 2 选中。编号 0 1 2 3 4 5 6 7 8 9。在此基础上,活动总数 - count,就是题目要的排除数量。3. 每次可以不拿,全拿,或拿一部分,问最高价值是多少。

2024-04-28 15:22:30 896

原创 图--并查集

并查集是一种数据结构并查集这三个字,一个字代表一个意思。并(Union),代表合并查(Find),代表查找集(Set),代表这是一个以字典为基础的数据结构,它的基本功能是合并集合中的元素,查找集合中的元素并查集的典型应用是有关连通分量的问题并查集解决单个问题(添加,合并,查找)的时间复杂度都是O(1)O(1)O(1)因此,并查集可以应用到在线算法中。

2024-04-27 11:17:43 1233

原创 最小生成树

我们来参考一张图我现在的需求不是要所有的边,我想在这些边里面找六条边,因为七个顶点,六条边就够了我要找的这六条边需要是总成本最小的,也就是权重和最小的.这个需求在现实生活中也是有意义的,假设这是你家的七个开关,我现在要铺设电线,把这七个开关连通,铺设方式很多种,但是我要找一个成本最低的.这便是最小生成树问题!

2024-04-27 11:17:10 340

原创 数据结构-图

本题需要记录每个节点到其它节点的最短路径,所以通过Floyd算法,使用dp数组更新所有节点到其余节点的最短路径,最后dp数组保留的就是所有节点到其余节点的最短路径,使用num数组记录,每个节点到其它节点的最短路长度小于distanceThreshold的个数,找出最少的个数的起点i就是答案。如果两个顶点之间存在路径,则这两个顶点是连通的,所有顶点都连通,则该图被称之为连通图,若子图连通,则称为连通分量。例如,1->6 的距离是 14,而1->3->6 的距离是11。这时将距离更新为 11。

2024-04-26 21:46:52 647 1

原创 二叉树的性质

推导:整颗树的节点n = n0(叶子结点)+n1(只有一个子树的节点)+n2(有两个子树的节点)除了根节点之外,其余的任何节点都有一个入口分,n-1 = 2*n2+n1*1。性质三:叶子结点数n0,度为2的结点数n2,满足n0 = n2 + 1。假设二叉树的0度,1度,2度结点为n0,n1,n2总结点为n。性质一:二叉树的第i层上最多有2^(i-1) 个节点。性质二:深度为k的二叉树最多有2^(k)-1个节点。按照结点求和: n = n0+n1+n2 [1]直接套进去就得到 2^(k)-1。

2024-04-25 15:09:50 162 1

原创 二分查找算法

二分查找算法也称折半查找,是一种非常高效的工作于有序数组的查找算法。

2024-04-24 20:52:56 589

原创 哈希表实现[很详细!]

int hash;//哈希码Object key;//键//值Entry next;//数组存链表头指针即可//选择2^nint size=0;//元素个数。

2024-04-22 21:04:13 826 1

原创 滑动窗口做题思路

什么是滑动窗口?就是一个队列,然后通过在这个队列中的各种移除和添加满足题目需求。

2024-04-22 21:02:53 416

原创 Java实现AVL树

二叉搜索树如果不是这种不平衡的情况,时间复杂度可以达到O(logn) 但是像图中的这种不平衡情况时间复杂度为O(n),那么如何解决呢?ta的实现有很多种,但其中一种比较著名的实现叫做AVL,为什么叫AVL呢?是因为有两位作者一位取了名字中的AV,另外一个取了L,所以叫AVL树。RL就是对右子树进行一次右旋,失衡节点进行一次左旋;基于以上的实现,我们可以写一个方法检查节点是否失衡,重新平衡代码。求节点高度的时候可以参照前面写过的求二叉树最大深度的题目。上面的例子中没有考虑黄色节点有右孩子(绿色节点)的情况。

2024-04-21 15:27:01 625

原创 Python练习Day3

运行上述代码后,首先会输出"Hello, World!",然后等待用户按下回车键。一旦用户按下回车键,控制台窗口将被清空,并输出"Console cleared!这段代码通常用于在Python程序中清空控制台窗口,以便在输出新内容之前清除之前的输出。这对于在控制台中显示动态更新的信息或进行交互式操作时非常有用。命令可以清除控制台窗口的内容,而在Linux和macOS系统中,需要使用。这句代码的作用是清空控制台窗口。在Windows操作系统中,使用。以下是一个示例,展示了如何在Python中使用。

2024-04-21 13:53:24 164

原创 数据结构 -- 二叉树&二叉搜索树

这样看似prev = node.val 也就是 prev = 5,但因为你的prev是作为一个参数,是对整个方法中生效的,也就是4这个点有doValid(node.left,prev) 和 doValid(node.right,prev)这两个prev都是4这个点传入的prev并不会说因为在doValid(node.prev)中prev=5导致这个方法的所有prev都变为了5,本质也就是这个参数只是这个方法的局部变量,局部变量的修改不会影响到其他的方法。如何知道右子树处理完成呢?

2024-04-20 17:24:47 1676

原创 Python练习Day2

斐波那契数列的特点是数列的前两个数都是1,从第三个数开始,每个数都是它前面两个数的和,形如:1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, ...。:水仙花数也被称为超完全数字不变数、自恋数、自幂数、阿姆斯特朗数,它是一个3位数,该数字每个位上数字的立方之和正好等于它本身,例如:1^3 + 5^3+ 3^3=153。例如,6是一个完美数,因为它的因数是1, 2, 3,而1 + 2 + 3 = 6。在检查一个数是否是完美数时,我们需要找到所有的因子,并将它们相加。

2024-04-20 09:16:10 903 1

原创 Python练习Day1

学习

2024-04-19 18:38:41 250

原创 IO流高级流

缓冲区能够提升输入输出的效率虽然FileReader和FileWriter中也有缓冲区 但是BufferedReader和BufferWriter有两个非常好用的方法.缓冲流。

2024-04-16 19:17:00 383

原创 commons-io

copy方法有多个重载方法,满足不同的输入输出流IOUtils.copy(InputStream input, OutputStream output, int bufferSize)//可指定缓冲区大小IOUtils.copy(InputStream input, Writer output, String inputEncoding)//可指定输入流的编码表。

2024-04-16 18:49:24 519

原创 数据结构 - 栈

计算机科学中,stack是一种线性的数据结构,只能在其一段添加和移除数据.习惯来说,这一端称之为栈顶,另一端不能操作数据的称之为栈底,就如同生活中的一摞书/*** 向栈顶压入元素* @param value -- 待压入值* @returns:压入成功返回true,否则返回false*//*** 从栈顶弹出元素* @Returns:栈非空返回栈顶元素,栈为空返回null*/E pop();/*** 返回栈顶元素,不弹出。

2024-04-15 12:31:57 621

原创 IO流基本流

内存不能永久化存储,程序停止,数据丢失,所以要添加一个存档功能,存储到硬盘的文件,我们要知道文件在哪里和如何传输,文件的位置也就是File类:路径,而IO流就是解决如何传输的问题,IO流就是一个存储和读取数据的解决方案.因为IO流跟File是息息相关的,所以需要先回顾一下,可以查看这一篇文章Java File类File 表示系统中的文件或者文件夹的路径获取文件信息(大小,文件名,修改时间) (判断文件的类型) (创建文件/文件夹) (删除文件/文件夹) ...

2024-04-14 15:54:10 939

原创 Object和Objects

只能被本包或者其他包的子类所应用Object是定义在Java.lang包下的,我们不能把代码写的lang包下,所以我们只能自己重写。1.如果没有重写equals方法,那么默认使用Object中的方法进行比较,比较的是地址值是否相等。2.一般来说地址值对我们意义不大,所以我们会重写,重写之后比较的就是对象内部的属性值了。Object类中的方法可以被所有子类访问,所以我们要学习Object类和其中的方法.Object是Java中的顶级父类.所有的类都直接或间接的继承Object类.Object的成员方法。

2024-04-14 08:45:25 252

原创 System

但是我们国家是在世界板块中在东八区,所以跟世界有八个小时的时差 所以是1970年1月1日 08:00:00。currentTimeMillis 返回当前系统的时间毫秒值 可以用来计算程序运行速度。1.如果数据源数组和目的地数组都是基本数据类型,那么两者的类型必须保持一致,否则会报错。3.如果数据源数组和目的地数组都是引用数据类型,那么子类类型可以赋值给父类类型。2.在拷贝的时候需要考虑数组的长度,如果超出范围会报错。System.arraycopy的细节。

2024-04-13 21:08:48 240

原创 static

Javabean类 用来描述一类事物的类.比如:Teacher,Student,Dog,Cat等。测试类 用来检查其他类是否书写正确,带有main方法的类,是程序的入口。工具类 不是用来描述一类事物的,而是帮我们做一些事情的类。非静态的东西是跟对象相关的 静态是共享的。static 表示静态,是Java的一个修饰符,可以修饰成员方法,成员变量。介绍一下工具类:帮助我们做一些事情的,但是不描述任何事物的类.属性:姓名,年龄,性别。

2024-04-13 15:11:42 380

原创 Java File类

类是文件和目录路径名的抽象表示,主要用于文件和目录的创建、查找和删除等操作。

2024-04-11 21:29:23 683

原创 Java方法引用

把已经有的东西拿过来用,当做函数式接口中的抽象方法的方法体//需求:创建一个数组,进行倒序排列//匿名内部类@Override});//lambda表达式//因为第二个参数的类型Comparator是一个函数式接口});//lambda表达式简化格式//方法引用//1.引用处必须是函数式接口//2.被引用的方法需要已经存在//3.被引用方法的形参和返回值需要跟抽象方法的形参和返回值保持一致//4.被引用方法的功能需要满足当前的要求。

2024-04-07 21:47:33 255

原创 数据结构 -- 堆

例子:比如实例1中第三个元素是1 所以咱们什么也不做 接着看下一个数字5,发现5比堆顶元素2大,那么就要进行替换,然后重新调整小顶堆。在数组中用堆排序并不是最优的选择因为有更优秀的算法.但是对于这道题目,最好的选择就是使用堆了.实例二:求第k=4大,我们可以先把数组前四个小顶堆中(当然了大顶堆也可以 但是这里用小顶堆)一部分是较小的数据 大概占一半 一部分是较大的数据 从小的里面挑大的 大的里面挑小的。如果新加进来的元素比堆中的元素逗都小,那么我们什么也不做。如果进来的元素大就替换掉堆顶元素。

2024-04-04 14:35:35 878

原创 RPM与YUM

学习

2024-03-30 13:56:28 1991

原创 Linux网络配置

3.修改文件 /etc/hostname 指定 vim /etc/homename 进去后再编辑就可以啦。要求: 将ip地址配置的静态的,比说ip地址为192.168.200.130。特点:Linux启动后自动获取IP,缺点是每次自动获取的ip地址可能不一样。1.为了方便记忆,可以给Linux系统设置主机名,也可以根据需要修改主机名。ping 目的主机 (功能描述:测试当前服务器是否可以连接母的主机)(小tip:) 停止虚拟机Linux系统的ping命令。说明:登录后,通过界面来设置自动获取ip.

2024-03-29 15:49:02 700

原创 Java String类

这个代码的意思是在一个StringBuilder对象在创建时已存放了一个字符串"abc"做两个练习来看看自己的StringBuilder这部分的知识点,掌握的怎么样叭!StringBuilder 可以看成是一个容器,创建之后里面的内容是可变的。说完了构造方法,我们来说一下StringBuilder中有那些常用的方法。这也就是为什么上面那个例子中第二个代码的运行效率快的原因了。由于上面写的是空参的构造StringBuilder的方法。根据字符串的内容,来创建可变字符串对象。是Java8新出的用于。

2024-03-22 19:22:45 647

原创 Mysql -- 约束

注意:约束是作用于表中字段上的,可以在创建表/修改表的时候添加约束.

2024-03-09 10:47:56 378

原创 Mysql第一天

(可掉电:内存 使用高电压和低电压来区别0和1进行数据的一个存储但是一旦断电了电压都没了 0和1也就没有了)大多数情况下,特别是企 业级应用,数据持久化意味着将内存中的数据保存到硬盘上加以”固化”,而持久化的实现过程大多 通过各种关系数据库来完成。MySQL 8版本在功能上 做了显著的改进与增强,开发者对MySQL的源代码进行了重构,最突出的一点是多MySQL Optimizer优化 器进行了改进。性能较高,支持集群,适应于安全性要求极高的系统,尤其是银行,证 券系统的应用。MariaDB 应运而生。

2024-01-27 17:21:01 1065

原创 Java类加载器

什么是类加载器?

2024-01-23 09:20:02 895

原创 C语言中的回文素数

任意的整数,当从左向右读与从右向左读是相同的,且为素数时,称为回文素数。求 1000 以内的所有回文素数。

2024-01-11 08:51:28 492

原创 C语言九九乘法表打印最全!

九九乘法表共 9 行 9 列,重点考察。适合刚学习C语言的同学来练习!希望此文对你有帮助!

2024-01-11 08:37:50 1011

原创 Java中的双冒号运算符(::)及其应用

Java 8引入了一种新的运算符,称为双冒号运算符(::),它是一种方法引用操作符,用于简化函数式接口的实现。这个运算符的引入是为了更方便地使用Lambda表达式和方法引用来编写更简洁、可读性更高的代码。在本文中,我们将深入探讨Java中的双冒号运算符及其各种应用场景。什么是双冒号运算符(::)?双冒号运算符(::)是Java 8引入的一个新特性,用于引用类的方法、构造函数或者实例方法。其中,ClassName是类名,methodName是要引用的方法名。

2024-01-03 10:16:52 603

原创 IO流学习

数据不会丢失目的地和数据源保持一致。字符集详解(ASCII, GBK)在搜索框搜索Serializable。数据流一个个拷贝 肯定就会出现乱码。文件拷贝的基本代码(小文件):存储和读取数据的解决方案。自己设置一个提示-版本号。

2023-12-16 09:29:03 354

原创 图论-并查集

是一种非常精巧而实用的数据结构,它主要用于处理一些不相交集合的合并问题.一些常见的用途有求连通子图,求最小生成树Kruskal算法和最近公共祖先(LCA)等.一般我们都会采用路径压缩 这样效率更加高。

2023-12-09 22:12:16 822

原创 递推与递归+DFS

DFS深度优先搜索 时间复杂度O(2^n) 空间复杂度跟他的高度 有关系O(h)C^m n= C^(n-m) n 最大值多少?13取得最值 中间取最值。long long 2^64~10^18 递归层数不能太多。(x+1)^n中x^k的系数=n中取k个的组合数。顺序:1.依次枚举每个位置应该放那个数。顺序从1~n依次考虑每个数 选/不选。2.依次枚举每个数应该放那个位置。1.依次枚举每个数放那个位置'2.依次枚举每个位置放那个数'递归/DFS 最重要的是顺序。分析递归-->递归搜索树。

2023-12-03 19:40:10 361

空空如也

空空如也

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

TA关注的人

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