- 博客(64)
- 资源 (1)
- 收藏
- 关注
原创 【蓝桥杯软件赛 零基础备赛20周】第8周——排序算法及应用
数位排序用这一题熟悉sort()中的自定义比较函数。C++代码。本题看似不好做,实际上可以利用sort (first, last, comp)中的自定义比较函数comp,简单地实现。int sum(int x){ //计算x的数位和return ans;bool cmp(int x, int y){ //自定义比较,数位和小的在前面int n, m;i
2024-01-08 11:33:04
1387
1
原创 【蓝桥杯软件赛 零基础备赛20周】第7周——二叉树
前面介绍的数据结构数组、队列、栈,都是线性的,它们存储数据的方式是把相同类型的数据按顺序一个接一个串在一起。简单的形态使线性表难以实现高效率的操作。二叉树是一种层次化的、高度组织性的数据结构。二叉树的形态使得它有天然的优势,在二叉树上做查询、插入、删除、修改、区间等操作极为高效,基于二叉树的算法也很容易实现高效率的计算。
2024-01-08 11:09:36
1422
原创 【蓝桥杯软件赛 零基础备赛20周】第6周——栈
很多计算机教材提到:程序 = 数据结构 + 算法。“以数据结构为弓,以算法为箭”数据结构是是计算机存储、组织数据的方法。常用的数据结构有:数组(Array)、栈(Stack)、队列(Queue)、链表(Linked List)、树(Tree)、图(Graph)、堆(Heap)、散列表(Hash)等。分为两大类:线性表、非线性表。数组、栈、队列、链表是线性表,其他是非线性表。在所有数据结构中,线性表是最简单的。线性表有数组、链表、队列、栈,它们有一个共同的特征:把同类型的数据一个接一个地串在一起。
2023-12-01 11:22:42
1648
原创 【蓝桥杯软件赛 零基础备赛20周】第5周——高精度大数运算与队列
Queue的文档:https://docs.oracle.com/en/java/javase/15/docs/api/java.base/java/util/Queue.html。超过64位的大数计算,Java和Python都能直接算,而C++不能直接算,需要用数组来模拟大数的存储。这个手写队列是用list实现的,进队尾用append()实现,队列自动扩展,不会有溢出问题。这个手写代码有一个严重缺陷:如果进入队列的数据太多,使得tail超过了N,数组que[N]就会溢出,导致出错。
2023-12-01 10:53:56
1376
原创 【蓝桥杯软件赛 零基础备赛20周】第4周——简单模拟
正在学编程语言(C/C++、Python、Java),或者刚学过语言,还没有开始学数据结构和算法的同学,有一些疑问:如何快速入门算法竞赛?如何提高编码能力?如何提高计算思维?答案是:从简单模拟开始,并且大量做简单模拟。简单模拟是什么?在算法竞赛中,简单模拟是必不可少的一种题型。所谓简单模拟,就是不能归类为某个算法或数据结构知识点的编程题。简单地说,简单模拟不能或不需要套用现成的算法和数据结构,只要学过编程语言就能做,考核思维、逻辑、编码能力。
2023-11-20 18:24:31
990
1
原创 【蓝桥杯软件赛 零基础备赛20周】第3周——填空题
蓝桥杯省赛10题中有2题填空,每题只有5分。填空题只需要填写答案,不需要解题过程,可以用编码、纸上演算、软件工具等各种方法求解,我统一归纳为“手算题”。近年来,填空题发生了比较大的变化:(1)填空题分值大大降低。从第1届到2021年第12届蓝桥杯,填空题有5题,分值占总分的45/150;从2022年第13届蓝桥杯开始,填空题减少到2题,只占总分的10/150。(2)填空题少了,难度也上升了,有些技巧用不上。
2023-11-11 19:53:03
1045
原创 【题解】2023 DTS算法竞赛集训 第1次
用哈希表h记录出现的数字的次数,最后去遍历,如果出现了0次,说明中断了,如果出现了1次以上,说明重复了。这道题是判断输入的数字是否连续和重复的,那肯定是要让数字从小到大排序才能找到中断和重复数字。另外要注意,如果从头遍历哈希表,前面可能有许多0,要判断更多的情况,因此可以记录下输入的最大值amax和最小值amin,在这个边界。上面的暴力求解中,第三步计算区间和,我们理所当然的对应前缀和的知识点,可以用前缀和通过。另外要注意,马对应上面的位置下标有可能越界,为了方便起见,我们将所有的坐标对应的+2。
2023-11-07 20:55:45
243
原创 【蓝桥杯软件赛 零基础备赛20周】第2周——常考知识点+判题
(8)大三和大四,开始难题、综合题的学习,使自己获得彻底的飞跃,成为“编码大师”,得到蓝桥杯国赛一等奖,ICPC、CCPC的金牌。即使是常年进行计算机教学的老师也痛苦,考试的时候,像“编码填空”、“程序设计”这样的题目,如果改卷的老师不是用机器验证,而是手批,很难打分。它的计算量,在12、13行只有一个for循环,循环n次,计算量远小于1秒的5000万次,所以顺利通过测试。因为,相比已经有了基础的同学,只是晚学了几个月而已,只要多花一些时间,很快就能赶上。”,就是看代码用到的空间是否超过了题目的限制。
2023-11-03 10:52:15
4584
原创 【蓝桥杯软件赛 零基础备赛20周】第1周——蓝桥杯软件赛介绍
报名明年4月蓝桥杯软件赛的同学们,如果你是大一零基础,目前懵懂中,不知该怎么办,可以看看本博客系列。
2023-10-31 14:34:12
1815
原创 【Control Net】第一章——开始使用Control Net来优化你的图片
参数推荐使用默认的参数,当然如果你想产生更好的效果,就要自己调参。
2023-08-17 00:19:11
310
原创 【小司的排坑指南】vmware中固定虚拟机ip,能ping通主机,并开通22端口
打开vmware虚拟网络编辑器中的dhcp设置,ip在起始和结束里选,记住子网掩码。可查看ip地址,e开头的是可以用的。网络选NAT连接即可ping通外网。开启用户密码作为连接验证,保存退出。
2022-09-19 10:55:13
1245
1
原创 小司笔记网址:http://sofice98.gitee.io/sofice-notes/#/README【持续更新中...】
致力于打造计算机专业优质笔记,覆盖后端,前端,算法,数据科学,系统架构,云原生等知识点。参考各大知名博客、视频、文字等教程,做知识点的汇总整理专家。小司笔记网址:http://sofice98.gitee.io/sofice-notes/#/README【持续更新中…】...
2022-02-28 16:52:59
154
原创 【Sofice小司笔记】4 Redis,包含nosql,redis架构,8中数据类型,事务,持久化,配置文件详解,发布订阅,集群管理,缓存穿透和雪崩
NoSQL关系型数据库存在的问题:网站的用户并发性非常高,往往达到每秒上万次读写请求,对于传统关系型数据库来说,硬盘 I/O 是一个很大的瓶颈网站每天产生的数据量是巨大的,对于关系型数据库来说,在一张包含海量数据的表中查询,效率是非常低的。因此,关系型数据不适合持久存储海量数据很难进行横向扩展(增加服务器),也就是说想要提高数据处理能力,要使用性能更好的计算机(纵向扩展)性能欠佳:导致关系型数据库性能欠佳的最主要原因就是多表的关联查询,为了保证数据库的ACID特性,必须尽量按照范式要求设计数据库
2022-01-21 17:25:43
486
原创 【Sofice小司笔记】3 MySQL,包含Mysql架构,InnoDB体系架构,redolog,MVCC,索引等
概述安装配置:https://www.cnblogs.com/winton-nfs/p/11524007.html命名规则:小写字母,‘ _’分隔 (为避免不同操作系统上数据库表和字段名等名字区分大小写不一致的问题)安装centos7安装mysql5.7# 下载wget https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm# repo安装rpm -ivh mysql57-community-release-e
2022-01-20 14:37:22
1863
原创 【Sofice小司笔记】2 SQL,包含详细的DDL,CRUD,DCL等
SQL 语句分类数据定义语言: DDL(Data Definition Language):CREATE、DROP、ALTER,主要是对表结构、视图、索引等的操作数据查询语言:DQL(Data Query Language):SELECT数据操纵语言:DML(Data Manipulation Language):INSERT、DELETE、UPDATE数据控制语言:DCL(Data Control Language):GRANT、REVOKE、COMMIT、ROLLBACK一、数据定义关系
2022-01-20 14:36:12
430
原创 【Sofice小司笔记】1 关系数据库基础,包含关系数据库设计,索引,事务,安全性,完整性,查询处理优化等
数据库管理系统 DataBase Management System / DBMSDBMS 是位于用户和操作系统之间的一层数据管理软件。数据库管理系统和操作系统一样是计算机的基础软件,也是一个大型复杂的软件系统。数据管理系统的主要任务就是科学的组织和存储数据,高效的维护和获取数据主要功能如下:数据定义功能DBMS提供数据定义语言(DDL),用户通过它可以方便的对数据库中的数据对象的组成和结构进行定义数据组织,存储和管理数据操作功能DBMS 还提供数据操作语言(DML),用户可以使
2022-01-20 14:35:06
1505
原创 【Sofice小司笔记】4 DevOps, CI, CD
DevOpsDevOps 这个词,其实就是 Development 和 Operations 两个词的组合。它的目标:让开发人员和运维人员更好地沟通合作,通过自动化流程来使得软件整体过程更加快捷和可靠在 DevOps 的流程下,运维人员会在项目开发期间就介入到开发过程中,了解开发人员使用的系统架构和技术路线,从而制定适当的运维方案。而开发人员也会在运维的初期参与到系统部署中,并提供系统部署的优化建议。CI:持续集成,CD:持续交付DevOps的起源单体架构 + 瀑布模式这个时候只有开发人
2022-01-20 14:31:48
431
原创 【Sofice小司笔记】2 二十三种设计模式与七大原则,每种模式从(模式动机,模式定义,模式结构,java代码实现,总结,jdk示例)这几个方面来说明
???? 设计模式七大原则???? 一段话记住七大原则:要实现易于维护和扩展,需要遵循开闭原则,面向接口或抽象类开发(依赖倒转),基本有两种方法:组合(合成复用),继承(里氏替换)。要实现更加的高内聚与低耦合,接口要满足接口分离,类要满足单一职责,类之间要满足最少知道。1. 开闭原则开闭原则的定义是对扩展开放,对修改关闭。当应用程序的需求需要改变或扩展时,我们应该在不修改其源代码的情况下,也能完成相应的目的。开闭原则的优点是:使得应用程序更易于维护和扩展。2. 依赖倒转原则依赖倒转原则是实现开闭
2022-01-20 14:30:34
548
原创 【Sofice小司笔记】1 软件工程基础,包含软件过程,敏捷开发,需求工程,软件测试,UML,面向对象等
@ 软件工程笔记生命周期问题定义:开发目标及可行性需求分析:对软件需要实现的各个功能详细分析,需求会不断变更软件设计:根据需求分析结果,对整个软件系统进行设计软件开发:编码软件测试:找出问题加以纠正,有单元测试、组装测试、系统测试三个阶段软件维护:延续软件使用寿命,分为纠错性和改进性软件过程最基本的软件工程活动:软件规格说明软件开发软件确认软件演化软件过程是个层次化的技术,从低到高为:质量,过程,方法,工具软件过程模型瀑布模型1.需求分析2.系统和软件设计3.实
2022-01-20 14:27:43
268
原创 【Sofice小司笔记】4 JDBC,包含连接数据库,CRUD,事务,连接池等
JDBCJava标准库自带的JDBC接口其实就是定义了一组接口,而某个具体的JDBC驱动其实就是实现了这些接口的类在Java代码中如果要访问MySQL,那么必须编写代码操作JDBC接口。注意到JDBC接口是Java标准库自带的,所以可以直接编译。而具体的JDBC驱动是由数据库厂商提供的实际上,一个MySQL的JDBC的驱动就是一个jar包,它本身也是纯Java编写的。我们自己编写的代码只需要引用Java标准库提供的java.sql包下面的相关接口,由此再间接地通过MySQL驱动的jar包通过网络访问
2022-01-20 14:25:14
902
原创 【Sofice小司笔记】3 Java并发,包含JMM,线程用法,Executor,各种锁,volatile,synchronized,CAS,AQS,ThreadLocal等
现今 Java 中线程的本质,其实就是操作系统中的线程,其线程库和线程模型很大程度上依赖于操作系统(宿主系统)的具体实现,比如在 Windows 中 Java 就是基于 Win32 线程库来管理线程,且 Windows 采用的是一对一的线程模型。Java内部采用抢占式调度,而非协同式调度。Java 内存模型(JMM)JMM 规定了所有的变量都存储在主内存(Main Memory)中,每条线程还有自己的工作内存(Working Memory)。线程的工作内存中保存了被该线程使用的变量的主内存副本,线程
2022-01-20 14:24:19
215
原创 【Sofice小司笔记】2 JVM,包含jvm体系结构,内存区域,GC机制,类加载机制,Hotspot虚拟机架构等
OpenJDK源代码:http://hg.openjdk.java.net/jdk/jdk11JVM 体系结构JVM 的结构基本上由 4 部分组成:类加载器,在 JVM 启动时或者类运行时将需要的 class 加载到 JVM 中执行引擎,执行引擎的任务是负责执行 class 文件中包含的字节码指令,相当于实际机器上的 CPU内存区,将内存划分成若干个区以模拟实际机器上的存储、记录和调度功能模块,如实际机器上的各种功能的寄存器或者 PC 指针的记录器等本地方法调用,调用 C 或 C
2022-01-20 14:22:31
551
原创 【Sofice小司笔记】1 Java,包含java基础知识,集合,面向对象,反射,泛型等
JavaSE:标准版(桌面程序,控制台)JavaME:嵌入式开发(手机)JavaEE:E企业级开发(web,服务器)JDK(Java Development Kit):整个java开发工具JRE(Java Runtime Environment):运行时环境JVM(Java Virtual Machine):java虚拟机Java 程序其实是运行在JVM (Java虚拟机) 上的,使用 Java 编译器编译 Java 程序时,生成的是与平台无关的字节码,这些字节码只面向 JVM。不同平台的 JV
2022-01-20 14:21:26
434
原创 【UML类图箭头含义】六大关系的含义及其UML类图箭头,美观简洁(泛化、实现、依赖、关联、聚合、组合)
① 泛化、继承【is-a】继承允许我们根据一个类来定义另一个类,这使得创建和维护应用程序变得更容易。同时也有利于重用代码和节省开发时间。实线空心三角,子类指向父类② 实现、接口【implement-a】接口定义了属性、方法和事件,这些都是接口的成员。接口只包含了成员的声明。成员的定义是派生类的责任。接口提供了派生类应遵循的标准结构。虚线空心三角,实现类指向接口③ 依赖、方法参数【uses-a】一个类要需要另一个来完成它的相关任务,体现在函数参数包含另一个类的实例虚线箭头,使用类指向被使用
2022-01-13 21:16:51
9849
原创 【Sofice小司笔记】7 网络编程&web编程,包含五大 I/O 模型、NIO、TCP、UDP编程、Servlet、MVC架构、MVVC架构等
I/O 模型对于一个套接字上的输入操作,第一步通常涉及等待数据从网络中到达。当所等待数据到达时,它被复制到内核中的某个缓冲区。第二步就是把数据从内核缓冲区复制到应用进程缓冲区。阻塞式 I/O应用进程被阻塞,直到数据从内核缓冲区复制到应用进程缓冲区中才返回。在阻塞的过程中,其它应用进程还可以执行,因此阻塞不意味着整个操作系统都被阻塞。因为其它应用进程还可以执行,所以不消耗 CPU 时间,这种模型的 CPU 利用率会比较高。data = socket.read()非阻塞式 I/O应用进程执行系统
2022-01-06 17:29:07
243
原创 【Sofice小司笔记】6 Linux,包含各类常用命令速查、文件目录管理、Shell编程、用户管理、包管理等
常用命令1、权限文件chgrp:更改文件属组;chgrp [-R] 属组名 文件名,-R递归chown:更改文件属主,也可以同时更改文件属组;chown [–R] 属主名 文件名 或 chown [-R] 属主名:属组名 文件名chmod:更改文件9个属性;chmod [-R] xyz 文件或目录用户useradd:添加账号;-m创建使用者目录,-g用户组,-d指定用户主目录userdel:删除用户;-r删除使用者目录usermod:修改账号;passwd:用户口令;-i
2022-01-06 17:28:34
469
原创 【Sofice小司笔记】5 计算机网络,包含数据传输原理、网络各层协议详细说明、TCP/IP协议栈各常用协议说明、TCP握手挥手、可靠传输、网络加密技术
❓ 在浏览器地址栏输入一个 URL 后回车,背后发生了什么解析 URL浏览器封装 HTTP 请求报文DNS 域名解析获取 IP 地址建立 TCP 连接(长链接)浏览器发送请求负责传输的 IP 协议使用 ARP 协议凭借 MAC 地址通信服务器响应请求断开 TCP 连接浏览器渲染界面数据传输方式和交换方式传输方式按数据传输的流向和时间关系分类单工通信:只能指定方向。广播半双工通信:双向,但不能同时。对讲机全双工通信:双向同时。电话按数据传输的顺序分类串行:
2022-01-06 17:27:57
1578
原创 【Sofice小司笔记】4 操作系统,包含中断机制、进程管理、内存管理等常备面试考点
操作系统概述操作系统本质上是运行在计算机上的软件/程序,作为硬件基础上的第一层软件,操作系统是硬件和各种软件沟通的桥梁。其功能大致可分为两个部分:管理计算机硬件与软件资源向用户提供一个与系统交互的操作界面四个特征操作系统拥有 4 个鲜明的特征:并发、共享、虚拟和异步。其中,并发和共享是操作系统的最基本特征,没有并发和共享,就谈不上虚拟和异步。① 并发并发:并发是指宏观上在一段时间内能同时运行多个程序。当然,这些程序宏观上是同时发生的,但微观上是交替发生的。操作系统通过引入进程和线程,
2022-01-06 17:27:25
751
原创 【Sofice小司笔记】2 算法与数据结构,各类基础及常用高级数据结构、各种搜索方法、动态规划、字符串、数论、编码学、排序等,大部分都基于java实现
维基百科算法与数据结构ACM模式模板:import java.io.*;import java.util.*;public class Main{ public static void main(String[] args) throws IOException{ Scanner in = new Scanner(System.in); int q = in.nextInt(); // BufferedReader reader = new B
2022-01-06 17:25:38
457
原创 【Sofice小司笔记】1 计算机基础知识汇总,杂七杂八的知识总能在这里找到
编码ASCII编码ASCII 码使用指定的 7 位或 8 位二进制数组合来表示 128 或 256 种可能的字符GBK编码由于ASCII编码不支持中文,国人就定义了一套编码规则:当字符小于127位时,与ASCII的字符相同,但当两个大于127的字符连接在一起时,就代表一个汉字,第一个字节称为高字节(从0xA1-0xF7),第二个字节为低字节(从0xA1-0xFE),这样大约可以组合7000多个简体汉字。这个规则叫做GB2312。但是由于中国汉字很多,有些字无法表示,于是重新定义了规则:不在
2022-01-06 17:21:47
317
原创 【设计模式】简明扼要的三种工厂模式区别演化(静态工厂,工厂模式,抽象工厂)
???? 三种工厂模式区别演化刚开始时,为了封装统一管理产品的创建,将所有创建方法写到简单工厂中,提供一个参数来确定创建产品的具体实现方法。但是增加一个新的产品实现方法需要改动源代码,耦合较大,于是将工厂创建方法抽象出来,变成一个抽象工厂类,各个不同的工厂去继承并实现创建产品的具体实现方法,这样在新增一个新的产品实现方法时,只需继承抽象工厂类即可,获得产品时使用向上转型。为了管理多个相关的产品,抽象工厂类中会存在多个抽象创建方法用来创建不同的产品而不是只有一个,具体的工厂实现类需要去实现所有产品的创建
2022-01-06 17:19:13
207
原创 深入浅出HTTPS协议,RSA算法,对称加密,非对称加密,数字签名,数字证书【包含极简又必不可少的数学推导】
网上大多数介绍HTTPS协议和加密传输的文章都要么过于简洁,要么数学公式过多过于深奥。本文将以一种更加清楚地结构,从根本原理上介绍HTTPS协议,RSA算法,对称加密,非对称加密,数字签名,数字证书等概念,会包含基础的数学原理,并且保证极其简明扼要
2022-01-03 17:15:51
468
原创 mysql远程连接失败的问题
原因没有开放远程连接权限修改前:解决办法远程连接use mysql;update mysql.user set Host='%' where User='root';flush privileges;修改后:
2021-12-31 16:31:16
493
原创 docker一启动就自动退出,加上-d也无法在后台运行的问题
原因先不考虑内存不够等问题docker启动服务需要有前台程序交互,否则容器会自动执行stop,停止运行,导致服务中断。解决办法在run启动的时候在最后加上终端bash,来使其有一个默认的前台终端。docker run --name mysql -d -p 3306:3306 mysql:latest bash...
2021-12-31 13:30:07
1412
转载 ElasticSearch插件plugin ik分词器,报错plugin-descriptor.properties
报错内容找不到这个文件plugin-descriptor.properties报错原因如下图所示,下载的zip文件解压之后的情况,这里是不能放到elasticsearch的plugins中的。分析:由于是java开发的分词器,这里很明显是maven项目的目录结构。所以要执行打包命令,生成对应的发布的包正确的目录应该是解决办法在以下这个目录中执行:mvn clean install最后目录才是需要的包:/target/release/解压后可见:建议下载——————————————
2021-12-27 20:00:14
3849
原创 连接远程服务器的redis服务的坑
注意!连接远程服务器的redis服务:protected-mode nodaemonize yes注释bind更改端口(不然会被扫描挖矿)设置安全组
2021-12-21 20:02:29
400
原创 【Wordpress+Docker】详细教程,五分钟搭建你自己的个人博客
Wordpress是一键搭建博客的非常方便的工具,有各种模板可供使用。在Linux上安装WordPress就比较复杂了,我们需要配置PHP环境、Apache或者Nginx服务器、MySQL数据库以及各种权限和访问问题。所以在Linux上最好的办法就是使用Docker来安装WordPress。准备工作一台linux服务器(也可用本机 + 端口映射)安装好docker:linux安装docker安装Wordpressdocker pull wordpress安装MySQLWordPress.
2021-12-16 20:59:24
11112
1
原创 【怕图片丢失?本地图片路径配置繁琐?】typera+picgo+七牛云+自定义域名,教你三步构建属于自己的图床
准备工作:申请空间,绑定域名在七牛云创建免费10G的对象存储空间位置尽量选境外,否则域名还需备案购买自己的域名(这里在腾讯云购买)域名解析中添加一个二级域名,作为七牛云空间的解析域名七牛云空间默认的测试域名只有30天,所以要绑定自己的域名,才能实现永久访问分别填写:二级域名名称,CNAME,默认,随便填一个默认的地址(占位作用,之后会更改),然后确认七牛云空间中配置域名,在自定义源站域名里绑定配置picgo这是用来配置自动上传到图床的工具下载picgo下载安装好是这样的:
2021-12-15 16:52:30
1096
A*算法实现最短路径搜索
2018-05-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人