- 博客(142)
- 收藏
- 关注
原创 数据库补充知识
数据库简称 DB,是按照数据结构来组织、存储和管理数据的仓库,用户可以对文件的数据进行增加、删除、修改、查找等操作。区分一下,数据库管理系统简称DBMS,是一种操纵和管理数据库的大型软件,是用于建立、使用和维护数据库(DB)。它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。
2025-05-07 13:41:53
646
原创 如何看程序的时间复杂度?
程序=数据结构+算法(such as数组/链表),数组:因为需要一段连续的内存空间,所以,查询比较方便【直接通过下标查询】,增删不方便,很麻烦,增加的时候需要移动;删除的时候也不能删除某个空间,只能做覆盖操作链表:存储地址不连续,插入新元素/删除很方便,所以如果数据需要大量做增删操作,需要用链表算法:解决问题的方案算法好坏的评判标准是什么?一般不会考虑空间复杂度【空间嘛,多买内存条/4G卡这些就好啦】,所以更看重时间复杂度;时间复杂度是 数据总量n和计算次数y之间的关系式。
2025-05-06 13:49:32
347
原创 你知道为什么要配置环境变量吗?
你有没有遇到过这样的情况:在电脑上安装完一款软件,明明安装成功了,可在命令行里输入软件名称,却提示找不到该命令?或者想让不同的程序共享一些关键信息,却不知道该怎么做?这时候,环境变量就该登场了。
2025-05-03 01:30:08
919
原创 【Scrapy】简单项目实战--爬取dangdang图书信息
一定要记得!!在setting开启管道设置 ,设置的时候注意路径名称,在这卡了半天✅ spiders/ 里的爬虫逻辑(怎么抓,主要抓取数据的文件)✅ pipelines.py 里的存储逻辑,处理抓到的数据(怎么存,定义文件存储方式等等)✅ settings.py 里的配置参数(怎么调优)总的来说,简单一点的爬虫用scrapy实现时需要先创建好项目-->明确要爬取的目标--->分析页面,看看数据存在什么标签中,写爬取的py文件--->看看是否有反爬机制--->在管道文件中添加对数据的处理方式。
2025-04-30 18:41:51
1159
原创 【scrapy框架】入门+学会创建项目
Scrapy 是一个基于 Twisted 的异步处理框架,是纯 Python 实现的爬虫框架,其架构清晰,模块之间的耦合程度低,可扩展性极强,可以灵活完成各种需求。我们只需要定制开发几个模块就可以轻松实现一个爬虫。
2025-04-30 16:15:23
974
原创 【18】爬虫神器 Pyppeteer 的使用
Puppeteer 是 Google 基于 Node.js 开发的一个工具,有了它我们可以通过 JavaScript 来控制 Chrome 浏览器的一些操作,当然也可以用作网络爬虫上,其 API 极其完善,功能非常强大,Selenium 当然同样可以做到。而 Pyppeteer 又是什么呢?它实际上是Puppeteer 的 Python 版本的实现,但它不是 Google 开发的,是一位来自于日本的工程师依据 Puppeteer 的一些功能开发出来的非官方版本。
2025-04-29 17:42:34
1291
原创 Liunx安装Apache Tomcat
如果你开发了一个 Java Web 应用,Tomcat 可以作为服务器来部署和运行这些应用。它能够处理 HTTP 请求,将请求转发到 Java 应用程序,并将应用程序的响应返回给客户端(比如浏览器)是一个开源的 Java Servlet 容器 和 Web 服务器,主要用于运行基于 Java 的 Web 应用程序。此时输入网址:服务器的公网IP+:8080/myweb/love.html可以直接访问我们的项目。进入webapps,上面的图片页面就来源于webapps中的 ROOT。
2025-04-29 16:04:42
1333
原创 认识Linux基本操作、命令
-----上篇我们已经成功有了linux的操作系统,xshell远程连接好就可以在此进行liunx的相关操作啦,本篇学习一些常用的比较基础的linux命令。
2025-04-29 15:36:58
813
原创 搭建Linux操作系统
Linux 是一个非常强大的操作系统,很多服务器都用它来运行,很多网站(比如淘宝、京东等)的后台服务器都用 Linux,因为后期需要部署项目,我们选择使用linux系统,下面带着大家购买阿里云服务器,并选择其为linux系统。
2025-04-29 15:16:17
350
原创 《Masked Autoencoders Are Scalable Vision Learners》---CV版的BERT
核心思想:随机挡住图片的大部分区域,然后让模型根据剩下的碎片猜出被挡住的部分【来源于BERT带掩码的语言模型,patch===》image的一个块,预测的是这一个块的所有像素】核心设计一:非对称的encoder-decoder架构,MAE的编码器只编码可见的patches,被masked的块不编码,而解码器需要重构所有块。encoder只作用在可见的patch上,被mask掉的patch不做计算,可节约计算,提升训练速度decoder用于重构被mask掉的像素。
2025-04-28 20:54:52
968
原创 贪心算法~~
目录一、理论基础二、题目练习(1)455. 分发饼干(2)53. 最大子数组和 - 力扣(3)122. 买卖股票的最佳时机 II - 力扣(LeetCode)(4)860. 柠檬水找零 - 力扣(LeetCode)(5)905. 区间选点 - AcWing题库 (6)AcWing 908. 最大不相交区间数量 (7)906. 区间分组 - AcWing题库 (8)907. 区间覆盖 - AcWing题库 (9)148. 合并果子 - AcWing题库 (10)913. 排队打水 - AcWing题库(11)
2025-04-25 17:09:17
686
原创 c++ 大小写转换
字符串:transform(str.begin(),str.end(),str.begin(),::tolower);字符: ch=tolower(ch);
2025-04-25 14:10:20
90
原创 动态规划dp专题-(下)
这需要根据问题的特点来确定,常见的划分方式是在区间内选择一个分割点k,将区间[i, j]分成[i, k]和[k + 1, j]两个子区间。dp[0][0]表示第0天持有股票,此时的持有股票就一定是买入股票了,因为不可能有前一天推出来,所以。①dp含义:dp[i][j] --第i天的状态为j,所剩下的最大现金是dp[i][j],区间dp的入门题,自己写的时候忘了初始化dp[l][r] 为一个很大的值了。dp[i][j],第i天状态为j,所剩的最多现金为dp[i][j]。表示第i天不持有股票所得最多现金。
2025-04-24 20:09:55
594
原创 回溯--一种暴力搜索算法
简单了解下回溯?回溯是递归的副产品,只要有递归就会有回溯。,如果想让回溯法高效一些,可以加一些的操作,但也改不了回溯法就是穷举的本质。什么是组合,什么是排列?之前在dp(上)中遇到过求组合数/排列数的两种题型,。例如:{1, 2} 和 {2, 1} 在组合上,就是一个集合,因为不强调顺序,而要是排列的话,{1, 2} 和 {2, 1} 就是两个集合了。组合无序,排列有序。如何理解回溯法?回溯法解决的都是在集合中递归查找子集,。
2025-04-24 20:07:00
979
原创 最小生成树-prim、kruskal算法
学习之前建议温习一下迪杰斯特拉算法和并查集~先简单认识下最小生成树:最小生成树是,即:以最小的成本(边的权值)将图中所有节点链接到一起。图中有n个节点,那么一定可以用n-1条边将所有节点连接到一起。那么就是最小生成树算法的任务所在。下面我们以一道模板题来讲解如何解决这个问题~~
2025-04-24 17:33:31
737
原创 数据结构--并查集-高效处理连通性问题
首先要知道并查集可以解决什么问题呢?当我们需要判断两个元素是否在同一个集合里的时候,我们就要想到用并查集。如何将两个元素添加到一个集合中?将三个元素A,B,C (分别是数字)放在同一个集合,其实就是将三个元素连通在一起,如何连通呢。这样就表述 A 与 B 与 C连通了(有向连通图)。其实就是默认自己指向自己,所以如何判断两个元素是否在同一个集合里?如果通过。
2025-04-18 22:27:22
668
原创 git的上传流程
好久没使用git 命令上传远程仓库了。hbu的小伙伴~有需要nndl实验的可以自形下载哦。几个注意点--单个文件大小不能超过100M~~~
2025-04-16 22:09:21
338
原创 图论-BFS搜索图/树-最短路径问题的解决
也有一些问题是广搜 和 深搜都可以解决的,例如岛屿问题,这里我们记dfs的写法就好啦。最短路问题也是之前认真学过的,看这两篇就可以了!广搜的搜索方式就适合于解决两个点之间的。
2025-04-15 15:19:45
421
原创 哈希-一种数据结构
哈希表是根据关键码的值而直接进行访问的数据结构,比如数组,其实就是一张哈希表,哈希表中关键码就是数组的索引下标,然后通过下标直接访问数组中的元素,如下图所示:一般哈希表都是用来快速判断一个元素是否出现集合里。
2025-04-11 15:38:48
983
原创 【17】aiohttp 异步爬虫实战
在上一课时我们介绍了异步爬虫的基本原理和 asyncio 的基本用法,另外在最后简单提及了 aiohttp 实现网页爬取的过程,这一课时我们来介绍一下 aiohttp 的常见用法,以及通过一个实战案例来介绍下使用 aiohttp 完成网页异步爬取的过程。前面介绍的 asyncio 模块内部实现了对 TCP、UDP、SSL 协议的异步操作,但是对来实现了。aiohttp 是一个基于 asyncio 的异步 HTTP 网络模块,它既提供了服务端,又提供了客户端。
2025-04-01 20:14:40
2315
原创 前缀和-求解区间和问题(优化算法)
则题目AC代码为:(0_based索引)int main()int n;cin>>n;//前缀和数组i<=n;cin>>x;//查询int a,b;return 0;前缀和常用来作为优化算法,注意数组的存储是0_based索引还是1_based索引!①先计算前缀和i <= n;i++)②查询:对于每次查询,只需执行sum[r] - sum[l - 1] ,时间复杂度为O(1)//1_based索引//0_based索引。
2025-03-31 10:38:32
236
原创 【15】Selenium 爬取实战
我们学习了 Selenium 的基本用法,【】本节我们就来结合一个实际的案例来体会一下 Selenium 的适用场景以及使用方法。
2025-03-29 21:09:46
837
原创 双指针算法(快慢指针/对撞指针法)
双指针指的是在遍历对象的过程中,不是普通的使用单个指针进行访问,而是使用两个相同方向(快慢指针)或者相反方向(对撞指针)的指针进行扫描,从而达到相应的目的。最常见的双指针算法有两种:一种是,在一个序列里边,用两个指针维护一段区间;另一种是,在两个序列里边,一个指针指向其中一个序列,另外一个指针指向另外一个序列,来维护某种次序。这个题目暴力的解法就是两层for循环,一个for循环遍历数组元素 ,第二个for循环更新数组。题目还是比较难想的········在每一步,计算窗口的大小(即。,保持记录最大长度的值。
2025-03-29 19:39:50
778
原创 二分查找【看了包会】
①先定义left right 【区间的定义】②进入循环 【注意循环条件】③将target 与 nums[middle] 进行比对,结合①对区间的定义 更新左右区间 【主体部分】
2025-03-29 16:13:11
839
1
原创 最短路径题目练习
结合了一点数学思维。掌握了求最大公因数、最小公倍数、判断质数的数学知识,自己没想到的点是使用Floyd算法一次性计算。完整代码 (滚动数组优化后的)个元素的存储空间,按每个元素8字节(还要将朴素的O(N²)搜索改为。)计算,总内存需求约为。,远超任何合理内存限制。使用邻接矩阵存储的代码。
2025-03-28 17:16:23
293
原创 【14】Selenium的基本使用
上期文章我们讲解了 Ajax 的分析方法,利用 Ajax 接口我们可以非常方便地完成数据的爬取。只要我们能找到 Ajax 接口的规律,就可以通过某些参数构造出对应的的请求,数据自然就能被轻松爬取到。崔庆才爬虫案例练手地址:在很多情况下,,它的的,如图所示:此时解决方法通常有两种,一种是深挖其中的逻辑,把其中 token 的构造逻辑完全找出来,再用 Python 复现,构造 Ajax 请求;另外一种方法就是。
2025-03-28 14:18:11
1721
原创 【13】Ajax爬取案例实战
try:定义一个 scrape_api 方法,和之前不同的是,这个方法专门用来处理 JSON 接口,最后的response 调用的是 json 方法,它可以解析响应的内容并将其转化成 JSON 字符串。LIMIT = 10定义了一个 scrape_index 方法,用来接收参数 page,page 代表列表页的页码。构造了一个 URL,通过字符串的 format 方法,传入 limit 和 offset 的值。
2025-03-26 21:54:51
1309
原创 【12】Ajax的原理和解析
当我们在用 requests 抓取页面的时候,得到的结果可能会和在浏览器中看到的不一样:在浏览器中正常显示的页面数据,使用 requests 却没有得到结果。这是因为requests 获取的都是原始 HTML 文档,而浏览器中的页面则是经过 JavaScript 数据处理后生成的结果。这些数据的来源有多种,可能是通过 Ajax 加载的,可能是包含在 HTML 文档中的,也可能是经过 JavaScript 和特定算法计算后生成的。数据加载是一种异步加载方式,原始页面不会包含某些数据,
2025-03-26 17:59:42
1423
原创 如何从后端实现页面跳转?
请求转发:客户端发起一个请求到服务端,服务端把这个请求转发至其他地方重定向:客户端发起一个请求到服务端,服务端给出响应一个地址,客户端接受到新的地址之后再次发起请求【两次请求】
2025-03-23 20:57:58
498
原创 前后端+数据库的项目实战:hbu迎新网-较复杂(下)javaweb
/跳转到列表页//存cookie,携带href属性值//页面跳转})①后端代码没问题,修改之后运行为无效修改----------重新运行servers【一般创建新的servlet就要重启】②前端页面修改后运行没变化:清除浏览器数据之后再运行③前端熟练使用alert和console测试是否修改成功;后端直接System.out.println()④进行字符串拼接时,如果使用双引号当做开始结束符号,字符内部的双引号要写成单引号。
2025-03-23 20:55:39
975
原创 前后端+数据库的项目实战:hbu迎新网-较复杂(上)
需要知道content.html中待修改事件的id,跨页面交互,需要用到cookie,cookie存取事件的id,这样update.js就可以访问到content.js中的id值了 alert($.cookie("id"))1、创建SearchContentNum.java服务器获取搜索到的有几条事件,需要几页。2、将查找到的栏目放到update.html页面(和添加操作一样)在content.js文件设置cookie,: content.html文件中引入。2、将查找到的栏目放到add.html页面。
2025-03-23 20:23:47
853
原创 【11】Requests + PyQuery 基本案例实战
如果我们要完成列表页的爬取,可以这么实现:遍历页码构造 10 页的索引页 URL。从每个索引页分析提取出每个电影的详情页 URL。这里定义了一个 scrape_detail 方法,它接收一个 url 参数,并通过调用 scrape_page 方法获得网页源代码。由于我们刚才已经实现了 scrape_page 方法,所以在这里我们不用再写一遍页面爬取的逻辑了,直接调用即可,这就做到了代码复用。
2025-03-23 13:36:24
965
原创 图论--最短路问题总结
(除非 源点特别少,且边都是正数,那可以 多次 Dijkstra 求出最短路径,但这种情况很少,一般出现多个源点了,就是想让你用 Floyd 了)至此已经讲解了三大最短路算法,分别是D。(松弛n次,看看距离数组是否发生变化)
2025-03-23 10:47:42
327
原创 Floyd 算法--多源最短路
我们是把 k =0 的 i 和j 对应的数值都初始化了,这样才能去计算 k = 1 的时候 i 和 j 对应的数值。grid[i][j][k] = m,表示 节点i 到 节点j 以[1...k] 集合为中间节点的最短距离为m。你可以反过来想,节点i 到 节点j 中间一定经过很多节点,那么你能用什么方式来表述中间这么多节点呢?节点i 到 节点k 的最短距离 不经过节点k,中间节点集合为[1...k-1],所以 表示为。,同理节点k 到 节点j 的最短距离 也是不经过节点k,表示为。节点i 到 节点j 的。
2025-03-21 20:35:45
679
邱锡鹏-hbu深度学习学习资料
2025-03-10
C语言程序设计基础初
2022-09-29
C语言选择控制结构。。
2022-09-23
C语言选择控制结构。。
2022-09-21
C语言屏幕输入与输出
2022-09-18
C语言程序设计屏幕输入与输出
2022-09-17
C语言程序设计键盘的输入输出
2022-09-17
C语言数据类型 超级简单 但我不会 😭
2022-09-16
TA创建的收藏夹 TA关注的收藏夹
TA关注的人