自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 设计模式——简单工厂、工厂方法和抽象工厂的区别与联系

创建型模式中,常用的有工厂方法模式和抽象工厂模式,平时实践还包括简单工厂模式,虽然简单工厂模式不在23种设计模式中。为了区分以上几种设计模式的差别,通过以下几个例子介绍这几种模式的使用场景以及优缺点。当然,由于本人接触设计模式时间还不长,难免有疏漏之处,欢迎各位提出意见。考虑如今有一个产品,比如椅子,该椅子可以有多种风格,比如中式的,或者美式的。如果我们不想通过设计模式,想要什么类型的椅子,就可以直接实例化某个实体类获得。“ChineseChair.java”——实体类“Client.java”——用户

2022-06-02 13:26:51 1647

原创 将一个数组拆分成k段,对每个段求和,如何使和最小的段取到最大值

总的解题思路:既然要将数组arr分成k段,那么后面段的拆分,依赖于前一段的拆分。假设第一段已经拆分好了,那么后续的段就可以在此基础上进行拆分。整个数组拆分成k段有若干种情况,针对每一种情况,我们可以求出第n次拆分中最小段的和,同时与迄今为止保留的最小段的和最大的那个进行比较,保留较大的一方,直到遍历所有的拆分方案。拆分并不是无穷无尽的,比如第一段的start和end下标,就一定要满足end <= arr.length-k+1,否则数组后续的元素个数,都不够剩余的k-1段分配。public cla

2021-05-19 10:12:54 2968

原创 java中“==”与equals()方法区别

“==”和equals方法区别:双等号“ == ”,对于基本数据类型,比较的是它们的值。对于非基本类型,比较的是它们在内存中的存放地址,或者说是比较两个引用是否引用内存中的同一个对象。equals方法没有在类中被override时,比较的还是对象在内存中的地址;如果被override,一般是比较对象中的成员是否相同。 Integer a = new Integer(1); Integer b = new Integer(1); System.out.println(

2021-05-17 14:59:38 222

原创 python z3 解决 dpll 算法

python z3 解决 dpll 算法主要思路是转化为SAT问题。在求解SAT问题之前,为了方便将原子命题进行替换。需要将原始命题转换为否定范式,然后再由否定范式转化为合取范式。这样就可以保证整个命题式中只有命题变量,~,∧,∨等符号。主要的实现方法是递归,但是在每一次递归中,我们如果之前对某个原子变量做了替换,就需要先对整个命题进行简化,比如原始命题为 p ∧ q,我们在前一次递归中,将p赋值为True,那么在下一次递归中,就需要通过简化,使得原始命题变成 q 。然后最新的命题中只剩下了原子命题q,我

2021-05-05 23:51:01 924

原创 netfilter实现包过滤

如果运行成功,会发生如下现象:1.无法下载“.exe”文件;2.通过命令dmesg可以查看到自己在网页端登录时输入的账号和密码#include <linux/module.h>#include <linux/kernel.h>#include <linux/skbuff.h>#include <linux/in.h>#include <linux/ip.h>#include <linux/tcp.h>#includ..

2021-03-24 11:40:48 589

原创 使用Raw Socket实现ICMP重定向

#include<stdio.h>#include<stdlib.h>#include<string.h>#include<netinet/ip_icmp.h>#include<netinet/tcp.h>#include<netinet/udp.h>#include<arpa/inet.h>#include<sys/socket.h>#include<sys/types.h>#i.

2021-03-24 11:35:39 660

原创 rootkit隐藏tcp连接信息

rootkit隐藏tcp连接信息/* *通过hook内核函数tcp4_seq_show来隐藏某端口的tcpv4连接信息 *//*隐藏TCP的53端口的连接*/#include <linux/init.h>#include <linux/module.h> #include <linux/kallsyms.h>#include <linux/kernel.h>#include <linux/string.h>#include &

2021-03-20 14:45:24 580 2

原创 基于邻接表的dijkstra算法——C语言实现

鉴于CSDN上实现dijkstra算法大多是使用邻接矩阵,因此记录一下使用邻接表的实现。该算法通过读入文件构造邻接表,然后使用dijkstra构造单源最短路径。代码如下:dijkstra.h#define MAXSIZE 210//定义无向图中的顶点//定义无向图中的边(弧)typedef struct Edge{ int node;//该边的终点 int cost;//经过这条边需要的代价 struct Edge* nextedge;//与该顶点相连的下一条边}Edge;typ

2021-01-04 20:54:31 2081 4

空空如也

空空如也

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

TA关注的人

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