- 博客(57)
- 收藏
- 关注
原创 设计模式之代理模式
代理模式有动态代理和静态代理:静态代理模式中代理类是自己已经定理好的,在程序运行前就已经编译好了,然而动态代理,代理类并不是在Java代码中定义的,而是在运行时根据我们在Java代码中的“指示”动态生成的。*相比于静态代理, 动态代理的优势在于可以很方便的对代理类的函数进行统一的处理,而不用修改每个代理类中的方法*。 比如说,想要在每个代理的方法前都加上一个处理方法:JDK动态代理只能对实现了接口的类生成代理,而不能针对类,使用的是Java反射技术实现,不需要第三方库的支持,生成比较高效。CGLIB主要是针
2022-11-16 17:45:14
497
原创 java设计模式 - 建造者模式
3.指挥者类,指挥者类负责指挥构建类来对某个被建造的实体进行构建,其中指挥者类必须明确知道自己指挥的是哪个构建者 (即 内部有一个构建者的对象属性) 还有任意个构建方法,构建方法中有关于是如何构建的可以灵活的选择,即屏蔽了被构建者的内部细节。1.需要有一个抽象的建造者,统一建造的实体的方法,比如有构建主机,显示器,键盘鼠标方法,有一个建造完毕返回这个物品的方法。构建的具体类 继承抽象构建者,使用该具体的建造者来进行构建。2.被建造的实体类,开放被构建部分的方法 即开放set方法,也可以另外新增方法。
2022-10-30 17:07:29
268
原创 小练练练习
递增三元组给定三个整数数组A=[A1,A2,…AN], B=[B1,B2,…BN], C=[C1,C2,…CN],请你统计有多少个三元组 (i,j,k) 满足:1≤i,j,k≤N Ai<Bj<Ck 输入格式 第一行包含一个整数 N。第二行包含 N 个整数 A1,A2,…AN。第三行包含 N 个整数 B1,B2,…BN。第四行包含 N 个整数 C1,C2,…CN。输出格式 一个整数表示答案。数据范围 1≤N≤105, 0≤Ai,Bi,Ci≤105**思路:**由于数据范围是
2022-03-26 17:38:16
530
原创 2021-06-15每日一题
3679. 素数矩阵给定一个整数 n,请你构造一个满足下列条件的 n×n 矩阵:矩阵中的所有数字都是不超过 105 的非负整数。矩阵中的所有数字都不是素数。每行的数字之和都是素数。每列的数字之和都是素数。如果答案不唯一,则输出任意合理结果均可。输入格式第一行包含整数 T,表示共有 T 组测试数据。输出格式每组数据输出占 n 行,每行包含 n 个空格隔开的整数,表示你构造的满足条件的矩阵。数据范围1≤T≤10,2≤n≤100思路:0和1都不是素数,每行每列 1+1=2,就能够
2021-12-06 16:19:06
217
原创 3510. 最长公共子序列
3510. 最长公共子序列给出两个长度为 n 的整数序列,求它们的最长公共子序列(LCS)的长度,保证第一个序列中所有元素都不重复。注意:第一个序列中的所有元素均不重复。第二个序列中可能有重复元素。一个序列中的某些元素可能不在另一个序列中出现。输入格式第一行包含一个整数 n。接下来两行,每行包含 n 个整数,表示一个整数序列。输出格式输出一个整数,表示最长公共子序列的长度。数据范围1≤n≤106,序列内元素取值范围 [1,106]。最长公共子序列转化成最长上升子序列,只需要其中任意一
2021-10-19 14:14:20
350
原创 NIO基础笔记
Buffer的常用子类(它们之间最大区别在于底层实现数组的数据类型):ByteBuffer:存储字节数据到缓冲区CharBuffer:存储字符数据到缓冲区IntBuffer:存储整型数据到缓冲区ShortBuffer:存储短整型数据到缓冲区LongBuffer:存储长整型数据到缓冲区FloatBuffer:存储浮点型数据到缓冲区DoubleBuffer:存储双精度浮点型数据到缓冲区NIO详情博客地址NIO文件操作:import com.sun.org.apache.xpath.inter
2021-08-03 10:22:18
236
1
原创 数据库JDBC连接
JDBC是一套连接数据库的接口。数据库驱动都是jar包形式存在的,里面存放了各自数据库厂家的实现类,来实现JDBC接口,jar包都是各种.class文件,是各自数据库厂家用来实现JDBC接口的类。JDBC连接六个步骤1.注册驱动(只执行一次,告诉JAVA程序我们所要连接哪个厂家数据库)2.获取连接(建立和数据库的Connection连接)3.创建sql的操作对象(statement)4.执行sql语句(executeUpdate、executeQuery)5.处理查询结果集(Resultset)
2021-07-10 00:08:12
309
原创 Mysql数据库
设置数据库的编码格式1.alter database 数据库名 character set utf8 //将指定数据库的字符集改变utf-8 2.修改表编码格式:alter table 表名 default character set utf8;3.修改列的编码格式:alter table 表名 change 列名 列名 varchar(40) character set utf8;创表步骤:1.CREATE DATABASE myyog; 创建库2. USE myyog; 使用库
2021-06-22 21:38:07
540
1
原创 Java 网络编程
public class Server { public static void main(String[] args) throws Exception{ //1.创建服务器端对象 ServerSocket ss=new ServerSocket(9999); System.out.println("服务器正在等待连接"); //2.等待客户端连接 Socket s=ss.accept(); //先跑服务器,阻塞,
2021-06-13 22:33:33
1515
1
原创 Java多线程、线程池
线程池四种常见的线程池:1. CachedThreadPool:可缓存的线程池,该线程池中没有核心线程,非核心线程的数量为Integer.max_value,就是无限大,当有需要时创建线程来执行任务,没有需要时回收线程,适用于耗时少,任务量大的情况。2. SecudleThreadPool:周期性执行任务的线程池,按照某种特定的计划执行线程中的任务,有核心线程,但也有非核心线程,非核心线程的大小也为无限大。适用于执行周期性的任务。3. SingleThreadPool:只有一条线程来执行任务,适用于
2021-06-06 16:53:13
148
1
原创 Java IO流笔记
字节流可以处理一切文件,而字符流只能处理纯文本文件。1、FileInputStream、FileOutputStream(字节流)字节流的方式效率较低,不建议使用read()和read(byte b)read():返回读取到的字符(int),读到文末符就返回-1read(byte b) :向b数组中读取b.length个长度的字节,并返回字节的个数,读到文末符就返回-1 FileInputStream file=new FileInputStream("file.txt"); i
2021-05-28 20:46:44
211
1
原创 Manacher(马拉车)
Manachar算法主要是处理字符串中关于回文串的问题的,它可以在 O(n) 的时间处理出以字符串中每一个字符为中心的回文串半径.因为它只对没有匹配过的位置进行匹配。我们在字符串中的每一个字符前后 都加一个特殊符号,例如 “#”,然后在字符串最后再加一个。那么就让字符串变成奇数了。因为如果字符串长度为n的话, “#” 的数量为n+12*n+1 为奇数。例如原字符串为 “ababa” 长度为5,奇数。处理后的字符串为“ #a#b#a#b#a# ” 长度变为11,奇数。原字符串为“abba
2021-05-27 19:46:25
176
原创 唯一分解定理870. 约数个数
约数个数给定 n 个正整数 ai,请你输出这些数的乘积的约数个数,答案对 109+7 取模。输入格式第一行包含整数 n。接下来 n 行,每行包含一个整数 ai。输出格式输出一个整数,表示所给正整数的乘积的约数个数,答案需对 109+7 取模。数据范围1≤n≤100,1≤ai≤2×109输入样例:3268输出样例:12约数个数对于任何一个数N,都能够分成几个质数幂的乘积。对于N的每一个质因子p幂上d方,都有p的0次方,p的1次方,p的2次方,一直到p的d次方,所..
2021-04-17 19:05:39
404
原创 单调栈的使用、(string的使用模拟单调栈)and丑数
1453. 移掉K位数字给定一个以字符串表示的非负整数 num,移除这个数中的 k 位数字,使得剩下的数字最小。注意:空字符串被视为0。如果结果中包含前导零,则需要将前导零删除,最后删除的前导零不用包含在移除的 k 个数字中。输入格式第一行输入一个字符串,用来表示非负整数 num。第二行输入一个整数,表示 k。输出格式输出一个字符串,表示移除 k 位数字后所能得到的最小数字。输入样例1:14322193输出样例1:1219样例1解释移除掉三个数字 4,3,2 可形成一个新的最
2021-04-12 23:20:38
177
原创 双指针算法+二进制中的lowbit
最长连续不重复子序列给定一个长度为 n 的整数序列,请找出最长的不包含重复的数的连续区间,输出它的长度。输入格式第一行包含整数 n。第二行包含 n 个整数(均在 0∼105 范围内),表示整数序列。输出格式共一行,包含一个整数,表示最长的不包含重复的数的连续区间的长度。数据范围1≤n≤105输入样例:51 2 2 3 5输出样例:3这里使用的双指针算法:就是用一个一个变量j指向前面,变量i指向后面,如果没有重复的数i就一直后移,并且每次记录一下最大距离(即为不重复区间的长度).
2021-04-06 23:38:52
169
原创 拓扑排序和BFS的区别
BFS和拓扑序列的区别:BFS:只需要与其它点与之相邻(并且没有访问过)就能够入队,而拓扑排序却需要与之相邻的点入度为0(并且没有访问过)才可以入队。
2021-04-06 15:08:45
890
原创 拓扑排序
给定一个 n 个点 m 条边的有向图,点的编号是 1 到 n,图中可能存在重边和自环。请输出任意一个该有向图的拓扑序列,如果拓扑序列不存在,则输出 −1。若一个由图中所有点构成的序列 A 满足:对于图中的每条边 (x,y),x 在 A 中都出现在 y 之前,则称 A 是该图的一个拓扑序列。输入格式第一行包含两个整数 n 和 m。接下来 m 行,每行包含两个整数 x 和 y,表示存在一条从点 x 到点 y 的有向边 (x,y)。输出格式共一行,如果存在拓扑序列,则输出任意一个合法的拓扑
2021-04-05 19:46:10
288
原创 哈希表的运用
哈希表(Hash table,也叫散列表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。哈希表的时间复杂度都是O(1).基本用到哈希表的都是O(n).如:维护一个集合,支持如下几种操作:I x,插入一个数 x; Q x,询问数 x 是否在集合中出现过;现在要进行 N 次操作,对于每个询问操作输出对应的结果。插入一个数或者询问当前数在集合是否出现过可以使
2021-04-04 16:26:06
814
原创 Set和Map的使用
STL封装了许多复杂的数据结构算法和大量常用数据结构操作。vector封装数组,list封装了链表,map和set封装了红黑树(平衡二叉搜索树)等。Set和Map的区别在于Set只含有Key,而Map有一个Key和Key所对应的Value两个元素。非常高效的平衡检索二叉树:红黑树,他的插入删除效率比其他序列容器高是因为不需要做内存拷贝和内存移动,而直接替换指向节点的指针即可。Setset : 去重 + 排升序 ; (底层是 红黑树 )multiset : 不去重 + 排升序 ; (底层是 红黑树
2021-04-01 23:12:26
394
原创 KMP算法模板学习
KMP算法:P3375 【模板】KMP字符串匹配文本串:abcab模式串:abcacababcab强烈推荐看的kmp视频:KMP算法字符串匹配KMP算法的next数组推导#include <stdio.h>#include <string.h>char p[1000000];//模式串char t[1000000]; //文本串int len1,len2;int next[1000000];int next2[1000000];void getnext()
2021-03-31 18:01:19
274
原创 超市管理系统
提示:大一第一次写的项目项目要求:利用二分查找法对排序好的超市物品编号实现快速查找,并按其他关键字的查找可以采用最简单的顺序查找方法进行。(主要关键字是编号) 主菜单主界面与功能一览 按超市物品编号查询功能 按超市物品名称查询功能 按照进货时间查询功能 货架管理功能 进货功能 出货功能 退出管理系统在这里主要是名称和编号唯一相当于一个人的姓名和身份证,身份证肯定是唯一的,所以整体用编号来查询。其实也可以用姓名加编号双关键字相等来查找会更严谨,但是项目要求是编号。在保证
2021-03-14 22:51:56
1580
原创 优先队列
优先队列定义:priority_queue<Type, Container, Functional>Type 就是数据类型,Container 就是容器类型(Container必须是用数组实现的容器,比如vector,deque等等,但不能用 list。STL里面默认用的是vector),Functional 就是比较的方式,默认是大顶堆。大顶堆:priority_queue a;//等同于 降序priority_queue <int,vector,less >q;小顶堆
2021-02-26 22:08:06
153
原创 2021/2/25学习总结
早上8:30打卡签到。上午看视频学了一下搜索和DP 。1.5h下午就在写最短路问题,把最短路的给写完了(期间改了很久,加深了理解)感觉用stl不是很熟练然后还去看了一会stl。然后晚上也在找视频。把dijkstra最短路的问题整理了一下:最短路题目链接:...
2021-02-25 23:45:49
97
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人