自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 第五章、策略模式

一个基于策略模式的程序至少由两部分组成。第一个部分是一组策略类,第二个部分是环境类Context。案例:计算奖金,绩效分别为S、A、B,奖金分别为4、3、 2倍;定义:定义一些列算法,把他们一一封装,并且他们可以相互替换。我们把所有的绩效以及奖金分别写成单独的函数。核心:将算法的实现和算法的使用分离。

2024-02-22 22:57:05 851

原创 第四章、单例模式

时进行实例的实例化,这就是惰性单例的应用,不在js加载时就进行实例化创建, 而是在需要的时候再进行单例的创建。如果再次调用, 那么返回的永远是第一次实例化后的实例对象。函数是其构造函数,用于实例化对象,立即执行函数返回的是匿名函数用于判断实例是否创建,只有当调用。全局变量不是单例模式,但会把全局变量当作单例模式使用。单例模式的核心:唯一的实例,在全局能访问到。把一些变量封装到闭包内部,只暴露一些接口。在需要的时候才去创对象实例。2.使用闭包封装私有变量。作为实例对象最开始赋值为。改写为单例模式的构造器。

2024-02-22 22:56:26 420

原创 第六章、代理模式

另外,假设现实中的花价格不菲,导致在程序世界里,new Flower也是一个代价昂贵的操作, 那么我们可以把new Flower的操作交给代理B去执行,代理B会选择在A心情好时再执行new Flower,这是代理模式的另一种形式,叫作虚拟代理。其中关键是代理对象和本体都对外提供了 setSrc 方法,在客户看来,代理对象和本体 是一致的, 代理接手请求的过程对于用户来说是透明的,用户并不清楚代理和本体的区别,这 样做有两个好处。而虚拟代理是最常用的一种代理模式,本章主要讨论 的也是虚拟代理。

2024-02-14 12:06:21 1075

原创 JavaScript设计模式与开发实战

设计模式:单例模式、策略模式、代理模式;JavaScript基础:原型、原型链,this指向,继承等详细教程

2024-02-12 20:32:43 1310

原创 暑假小练day3

1、 合并两个有序数组2、环形链表 3、三数之和4、 Z mod X = C由题意可知,x-k1y=a; y-k2z=b; z-k3*z=c; 就找特值(也就是凑!)

2022-07-05 23:00:10 218 1

原创 暑假小练day2

1、 区域和检索——数组不可变(模板题) 2、所有奇数长度子数组的和(模板题)注意处理奇数就行 3、和相同的二元子数组用哈希更新前缀和 4、Buy a Shovel(暴力)

2022-07-04 11:25:49 139

原创 resize()函数

resize(),设置大小(size);reserve(),设置容量(capacity)

2022-07-04 10:09:08 15858 1

原创 暑假小练day1

1、(折半查找) 2、 3、4、显然,如果数组本身的和就小于 ss,那是肯定无解的。维护 l,r,suml,r,sum 这几个变量。其中,l,rl,r 分别代表左/右指针,初始值均为一。sumsum 代表从 l 到 r 之和,初始值为 a[1]​。接下来,不断进行以下判断:sum=ssum=s,此时更新答案,并将右指针右移。sums,此时左指针右移以尽可能使 sumsum 减小。直到某个指针越界为止。...

2022-07-03 12:06:47 110

原创 Spring Boot 添加各种依赖失败解决办法(万能)

类似于这种依赖看到爆红不要慌直接把idea关掉 重新进去会自动下好所需依赖环境。

2022-03-06 11:21:47 1210 2

原创 KMP算法精讲易懂(终于学会啦)

简介:KMP算法是一种改进的字符串匹配算法,由D.E.Knuth,J.H.Morris和V.R.Pratt提出的,因此人们称它为克努特—莫里斯—普拉特操作(简称KMP算法)。KMP算法的核心是利用匹配失败后的信息,尽量减少模式串与主串的匹配次数以达到快速匹配的目的。具体实现就是通过一个next()函数实现,函数本身包含了模式串的局部匹配信息。KMP算法的时间复杂度O(m+n)[1]。比较:Brute- Force算法在模式串中有多个字符和主串中的若干个连续字符比较都相等,但最后一个字符比较...

2022-01-19 16:07:12 415

转载 C++map()用法总结(整理)

1,map简介map是STL的一个关联容器,它提供一对一的hash。第一个可以称为关键字(key),每个关键字只能在map中出现一次;第二个可能称为该关键字的值(value);map以模板(泛型)方式实现,可以存储任意类型的数据,包括使用者自定义的数据类型。Map主要用于资料一对一映射(one-to-one)的情況,map內部的实现自建一颗红黑树,这颗树具有对数据自动排序的功能。在map内部所有的数据都是有序的,后边我们会见识到有序的好处。比如一个班级中,每个学生的学号跟他的姓名就存在著一

2022-01-09 21:36:49 1490

原创 ARP欺骗攻击

一、前提准备1、在kali 中打开权限用户输入 sudo su 即可之后检查是否有网络连接:(例)ping www.baidu.com显示如图所示证明有网络连接clear 清屏2、检查列表更新apt-get update等待更新结束即可3、软件安装输入: apt-get install dsniff注释:Dsniff 是一个著名的网络嗅探工具包。 dsniff 工具介绍纯粹被动地进行网络活动监视的工具,包括:dsniff、filesnarf、ma

2021-12-05 17:07:27 225

原创 JAVA 实现简单的学生选课系统(持续更新中)

题设:一个教授带5名学生,每一名学生对应一门课程import java.util.Scanner;public class Teacher { protected String name; protected int id; protected String studentName; protected int studentId; protected int num = 0; public Teacher() { super();

2021-10-02 13:05:22 3824

转载 C++中cmp()用法

首先,我们来谈谈大名鼎鼎的void qsort(void *base,int nelem,int width,int (*fcmp)(const void *,const void *));它属于C语言标准库函数,应该是运用最多的了,今天我不是来教你们怎么用qsort的,只是来交流一下排序函数的最后一个参数cmp()(它不仅可以叫cmp,你还可以给他取名叫什么pig啊dog的只要是英文单词都可以,cmp只是人们对compare的一种常用缩写)比较函数的写法。下面是cmp的写法:int cmp(

2021-09-16 19:37:41 10211

原创 组合问题(对应力扣77)

题⽬链接:https://leetcode-cn.com/problems/combinations/给定两个整数 n 和 k,返回 1 ... n 中所有可能的 k 个数的组合。 示例: 输⼊: n = 4, k = 2 输出: [ [2,4], [3,4], [2,3], [1,2], [1,3], [1,4],]思路看到k=2,那我就直接可以两层for循环了int n = 4;for(int i = 1; i <= n; i++) { for(int j = i.

2021-09-06 21:52:51 67

原创 回溯算法精讲

一、什么回溯法回溯法可以叫做回溯搜索法,是一种搜索法式,有递归就会有回溯。回溯函数也就是递归函数,指的都是一个函数。二、回溯的效率效率并不高,因为是穷举,最多剪枝一下,可以理解成暴力搜索三、回溯法解决的问题组合问题:N个数⾥⾯按⼀定规则找出k个数的集合(不强调顺序,{1,2}、{2,1}这是相同的)切割问题:⼀个字符串按⼀定规则有⼏种切割⽅式⼦集问题:⼀个N个数的集合⾥有多少符合条件的⼦集排列问题:N个数按⼀定规则全排列,有⼏种排列⽅式(强调顺序,{1,2}、{2,1}这

2021-09-05 21:51:25 168

原创 HTTP请求与相应

文章目录前言 一、pandas是什么? 二、使用步骤 1.引入库 2.读入数据 总结一、什么是HTTP?HTTP(HxperTextTransferProtocol,超文本传输协议)是访问万维网使用的核心通信协议,也是今天所有Web应用程序使用的通信协议。最初,HTTP只是一个为获取基于文本的静态资源而开发的简单协议,后来人们以各种形式扩展和利用它.使其能够支持如今常见的复杂分布式应用程序。HTTP使用一种用于消息的模型:客户端送出一条请求消息,...

2021-09-01 16:52:40 195

转载 ToCharArray()的用法

ToCharArray( )的用法,将字符串对象中的字符转换为一个字符数组。详解释就是:字符串转换成字符数组后,每个字符的ASC码与字符T的ASC码进行二进制异或运算。最后把结果转换回字符。举例说明:public class Test {public static void main(String args[]) {String Str = new String(“www.baidu.com”);System.out.print(“返回值 :” );System.out.p

2021-08-26 22:08:55 9801 1

原创 简单明了的多线程

一、简单了解进程:进程是资源单位,每个进程至少有一个线程线程:执行单位说白了就是 进程是个工厂而线程是工厂当中的流水线二、理解当我们运行一个程序的时候都会有一个主线程def func(): for i in range(10): print("func",i)if __name__ == '__main__': func() for i in range(10): print("main",i) 这个很

2021-08-25 21:39:15 88

转载 【python】Python安装pip出错:no matching distribution found for xxx

Python学习遇到小问题:ModuleNotFoundError: No module named ‘pip’今天想要装一下wxPython第三方库来写一下Python的GUI的时候发现cmd窗口下无法执行pip命令,想了想昨晚好像是pip命令行提示了我有新版本可以更新使用,更新之后也不成功,但昨晚没有怎么理会,以为没事,但今早起来一看发现pip命令都用不了了,出现了ModuleNotFoundError: No module named 'pip’这个错误。查询了网上之后发现,这个错误可以通过两行简

2021-08-23 23:01:59 14642 1

转载 Oracle账号

账号:2696671285@qq.com密码:Oracle1232021.8.20(亲测可用)转载于他人分享,感谢

2021-08-20 09:54:10 197

原创 快速幂算法模板

求 mk%pmk%p,时间复杂度 O(logk)O(logk)。int qmi(int m, int k, int p){ int res = 1 % p, t = m; while (k) { if (k&1) res = res * t % p; //防止溢出可以加1ll,即:res*1ll*t%p t = t * t % p; //此行同理 k >>= 1; }

2021-08-13 17:06:21 60

原创 二叉树遍历(建树模板)

#include<stdio.h>using namespace std;const int N=1010;int pre[N],in[N],post[N]; //先序,中序,后序int k;struct node{ int value; node *l, *r; node(int value=0,node *l=NULL,node *r=NULL):value(value),l(l),r(r){}};void buildtree(int l,int .

2021-08-13 17:06:03 155

转载 C/C++中的NULL与nullptr

C中的NULL在C语言中我们将NULL用作空指针之用,NULL在C语言中的定义如下:#define NULL ((void *)0)可以看到,C语言中NULL是一个void*指针,我们常用其来对指针变量进行初始化赋值或者作为返回类型为指针的函数的返回值(如函数执行失败时)等等。C++中的NULL在C++中,NULL的定义如下:/* Define NULL pointer value */#ifndef NULL #ifdef __cplusplus ..

2021-08-13 16:39:44 406

原创 Xpath入门

一、首先,先了解几个概念:  XPath,全称 XML Path Language,即 XML 路径语言,它是一门在 XML 文档中查找信息的语言。最初是用来搜寻 XML 文档的,但同样适用于 HTML 文档的搜索。所以在做爬虫时完全可以使用 XPath 做相应的信息抽取。二、安装lmxl模块:pip install lmxl 三、xpath解析<book> <id>1</id> <name>野花遍地香</

2021-08-10 11:34:45 384 3

原创 c++学生信息管理完整代码

#include<iostream>#include<stdio.h>#include<vector>using namespace std;struct StuInfo;vector<StuInfo> s;void AddInfo();void LocateInfo();void DisplayInfo();void ModifyInfo();void DeleteInfo();void ExitSystem();void home.

2021-08-04 12:02:49 980

原创 bs4解析-HTML语法

bs4解析比较简单,但是呢,首先你需要了解一丢丢的html知识.然后再去使用bs4去提取,逻辑和编写难度就会非常简单和清晰HTML(HyperTextMarkupLanguage)超文本标记语言,是我们编写网页的最基本也是最核心的一种语言.其语法规则就是用不同的标签对网页上的内容进行标记,从而使网页显示出不同的展示效果。<h1>我爱你</h1>上述代码的含义是在页面中显示"我爱你"三个字,但是我爱你三个字被"<h1>"和"</h1>...

2021-08-03 10:34:41 531

转载 已解决AttributeError: ‘set’ object has no attribute ‘items’

AttributeError: ‘set’ object has no attribute ‘items’出现这个问题,原因可能是定义的header有问题正确如下:header={“key”:“value”}如果是直接在请求数据中复制,很有可能会忽略键和值的冒号注意一下双引号的问题,是英文的...

2021-07-29 15:10:24 589

原创 re 模块

re模块那么接下来的问题是,正则我会写了,怎么在python程序中使用正则呢?答案是re模块re模块中我们只需要记住这么几个功能就足够我们使用了.|1.findall查找所有.返回listlst=re.findall("m","mailefomainimei!”)print(lst) #["m","m",'m"]lst=re.findall(r"\d+”,"5点之前.你要给我5000万”)print(lst) #['5','5000'〕2.se...

2021-07-25 21:50:46 76

原创 re 正则表达式

简介:正则表达式RegularExpression,正则表达式,一种使用表达式的方式对字符串进行匹配的语法规则.我们抓取到的网页源代码本质上就是一个超长的字符串,想从里面提取内容,用正则再合适不过了。正则的优点:速度快,效率高,准确性高。正则的缺点:新手上手难度有点儿高。不过只要掌握了正则编写的逻辑关系,写出一个提取页面内容的正则其实并不复杂正则的语法:使用元字符进行排列组合用来匹配字符串在线测试正则表达式https:/tool.oschina,netlregexl元字符:具有固定含义的.

2021-07-25 21:14:46 97

原创 线性规划 Matlab

2021-07-23 22:15:49 139

原创 八数码 问题 BFS+Cantor

#include<bits/stdc++.h>using namespace std;const int LEN=362880; //状态总共362880struct node{ int state[9]; //记录一个八数码的排列,即一个状态 int dis; //记录到起点的距离};int dir[4][2]={{-1,0},{0,-1},{1,0},{0,1}}; //左、上、右、下顺时针方向,左.

2021-07-23 16:45:51 150

转载 Eratosthenes筛法

Eratosthenes筛法埃拉托斯特尼筛法,简称埃氏筛或爱氏筛,是一种由希腊数学家埃拉托斯特尼所提出的一种简单检定素数的算法。用于求得[1, n]区间内的全部素数。算法流程:第一步,将[2, n]区间排成一列。第二步:标出列表中的第一个数,筛去其所有的倍数。不断重复第二步,被标记的就是[1, n]区间的所有素数。例如:求[1,10]区间内的所有素数。1.将[2, 10]排成一列2.标出列表中的第一个数——2,筛去所有2的倍数3.标出列表中的第一个数——3,筛去所有3的倍..

2021-07-20 16:20:47 747

原创 HDU 1312“Red and Black”题解

总体思路:按照“扩散”思想,由近到远顺序进行,被扩散到的点到起点的路径是最短的例如:. . . . . .#. . . . . . .# @ . . .. # . . .#从@出发 可以向上(1)、右(2)移动,同理(1)可以向上、左、右移动以此类推源码如下 有详细注释#include<bits/stdc++.h>using namespace std;char room[23][23];int dir[4][2]={ //上下左右

2021-07-18 21:48:22 94

原创 子集生成和组合问题

子集生成问题每个子集对应一个二进制数,这个二进制数中的每个1都对应着这个子集中的某个元素,而且子集中的元素是没有顺序的。因为所有二进制数的总个数是2的n次方。下面的程序通过处理每个二进制数中的1打印出了所有的子集。#include<bits/stdc++.h>using namespace std;void print_subset(int n){ for(int i=0;i<(1<<n);i++){ //i:0...

2021-07-18 16:19:28 180

原创 VC++中for(i = 1; i < (1 << n); i ++)循环语句中 i < (1 << n)的含义

<< 在VC++里执行的是位的算术左移 比如a=(1<<1) 就是1的二进制从右向左移一位 有符号位的左移高位相应补0或者1 移n位就是原十进制数的2^n次方 因为VC++里整型32 所以最多可以移31位 这个很重要的 否则造成溢出...

2021-07-18 15:32:50 1333

转载 n&(1<<i)的含义

1<<i 是将1左移i位,即第i位为1,其余位为0;例如1<<2 则0001->0100n&(1<<i)是将左移i位的1与n进行按位与,即为保留n的第i位,其余位置零如果n第i位为0,则n&(1<<i)的值为0否则不为0常用if(n&(1<<i)==0)用于判断n的第i位是否为0————————————————版权声明:本文为CSDN博主「feiyu_diary」的原创文章,遵循CC 4.0 B

2021-07-18 15:27:33 1219

原创 C++ STL 中的排序特例

nth_element( arr.begin() , arr.begin()+n , arr.end() );其中arr.begin()+n 表示第n个序列即第n-1个元素所在位置,比n小的元素在其左边,比其大的元素在右边,排序出来的可能是按顺序,也可能是乱序,有的acm中可能会卡这个点。...

2021-07-15 22:12:40 42

空空如也

空空如也

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

TA关注的人

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