自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 高级算法复习指南

近似比≥1。

2024-06-18 22:30:30 741

原创 力扣每日一题 2024/3/24 零钱兑换

动态规划五步法第一步确定dp数组的含义:dp[i]为凑到金额为i所用最少的硬币数量第二步确定动态规划方程:凑足金额为j-coins[i]所需最少的硬币个数为dp[j-coins[i]],那凑足金额为j所用的最少硬币数为dp[j-coins[i]]+1第三步初始化:凑足金额为0所需硬币数为0,即dp[0]=0此外dp数组内其他值也需初始化为最大值,否则在遍历coins数组计算金额的时候容易被覆盖第四步遍历顺序:外层遍历物品,内层遍历背包容量第五步推导得出dp[amount]

2024-03-24 15:32:11 587

原创 力扣每日一题 2024/3/23 统计桌面上的不同数字

给定整数n,找出循环十亿天后桌上的数字。可以先通过一天来找找规律。第一天 n%i==1 (1<=i<=n)只有n-1符合.加入桌面第二天(n-1)%i==1 (1<=i<=n-1)只有n-2符合 加入桌面依次类推 例外2%1==0 所以1不符合题目条件限制最后桌面上只有n-1个数字。

2024-03-23 14:33:20 271

原创 力扣每日一题 2024/3/21 频率跟踪器

看到统计数字频率或者出现次数很容易想到用哈希表,但是一个哈希表count将数字和数字出现次数映射起来似乎不太够,如果需要统计数字出现次数的频率的话还是需要进行一次遍历,时间复杂度为O(n),有没有常数级获取数字出现次数的频率呢,再定义一个哈希表times,用来建立数字出现次数和数字出现次数的频率的哈希表。删除元素同理,首先找到该数字对应的出现次数,进行减一,然后更新times哈希表,该数字对应出现次数的频率减一,该数字删除后对应的出现次数的频率加一。空间复杂度O(m) m为值域范围。

2024-03-21 17:03:51 336

原创 力扣每日一题 2024/3/19 好子数组的最大分数

好子数组的下标在i<=k<=j,即nums[k]必须在好子数组当中,将数组以k为分界点分为左右两半,左半left从k-1向左移动,右半right从k+1开始出发向右移动。当left大于等于分界点的值时左移一位,当right大于等于分界点的值时右移一位,这样做的目的是确保k所在位置的值为整个子数组内最小值min,定义ans用来存储最小值*区间长度当left和right同时到达边界时停止移动,退出循环。

2024-03-19 14:05:58 370

原创 力扣每日一题 2024/3/18 区域和检索

看到对某一区间内进行求和,很容易想到前缀和定义一个sums数组用于存储前缀和,容量为nums.length+1初始化的时候对nums数组进行求和,将前k项的和存储进sums数组中这样对某一区间[left,right]的求和就不必遍历一遍,直接返回sums[right+1]-sums[left]即可将原本可能会有的O(n)(n为数组nums的长度)复杂度降到了常数级复杂度。

2024-03-18 14:37:00 450

原创 力扣每日一题 2024/3/17 最小高度树

如果图中只有一个结点,直接返回结果即可首先定义一个邻接表adj来存储无向图edges上关联的结点,利用数组degree来存储每个节点的度。遍历degree数组,将所有度为1的结点加入队列q中,定义剩余节点初始为n,当剩余节点大于2的时候,计算当前队列的长度sz,依次从队列q中将度为1的结点取出,遍历所有与他相连的结点(即遍历其所在的链表adj),将所有关联的结点的度degree[v]-1,当其中关联结点的度为1的时候再次压入队列q中。重复之前的步骤,直至剩余节点小于等于2为止。

2024-03-17 17:01:15 411

原创 力扣每日一题 2024/3/16 矩阵中移动的最大次数

首先这个系列不一定会连续更新下去 也许会断更 目前只打算更新每日一题的easy和medium难度 会逐步讲解每一行代码的思路。

2024-03-16 14:44:21 1066

原创 微服务:匹配系统

在Java中,ReentrantLock 是 java.util.concurrent.locks 包下的一个类,它提供了一个可重入的互斥锁(即同一个线程可以多次获得同一个锁),是 java.util.concurrent 并发包中提供的一种锁机制。在Java中,ConcurrentHashMap 是一个线程安全的哈希表实现,它可以在多线程环境中提供高性能的并发访问。也就是在蓝色的线程里面修改nextStepA和nextStepB的值,而在红色的线程里面,会读取这两个线程的值。

2024-03-15 19:02:55 581

原创 配置Mysql以及注册登录模版

仔细分析了一下问题:用于使用的spring boot是3.x以上版本,在配置跨域文件的时候直接复制已提供的代码会报错,此时根据评论下的建议把javax改成jakarta之后暂时解决了一部分的跨域问题(获取用户登录的操作正常),但是获取用户的信息仍然会报错。controller层负责具体的业务模块流程的控制,controller层负责前后端交互,接受前端请求,调用service层,接收service层返回的数据,最后返回具体的页面和数据到客户端。这增加了系统的可用性和伸缩性,大大减轻了服务端的压力。

2024-03-15 19:01:12 860

原创 代码随想录 回溯模版

【代码】代码随想录 回溯模版。

2024-03-14 16:51:59 377

原创 代码随想录 二叉树路径解法归纳

【代码】代码随想录 二叉树路径解法归纳。

2024-03-12 14:03:55 333

原创 Avantgrade项目前端布局(导航栏+地图绘制)

在GameMap.vue中,创建响应式应用parent指向模版中的div,canvas指向模版中的canvas,onMounted则是用于组件挂载后初始化游戏地图并利用canvas渲染成2d。将矩形分成若干小正方形,小正方形的边长大小取决于长宽各划分13等分之后的较小值,再将较小值乘上行和列数即为最终大正方形地图的边长L。当前路由的页面是否在pk页面下,如果是,则字体高亮,如果不是,默认不高亮。在component文件夹下创建NavBar.vue进行布局。随着窗口的大小而动态调整地图的大小。

2024-02-02 23:30:59 448 1

原创 Git Docker Portainer和Nginx的前置知识学习

方式3:点击Create Git Respository创建本地仓库,然后Command+shift+K填写仓库地址可以上传至远程仓库 Command+K 提交。方式1:在gitcode中创建一个仓库,然后通过git clone+地址的方式拉取,再通过IntelliJ IDEA内打开,创建代码就可以提交。Git的作用:将本地的代码上传至仓库中,已达到维护代码,版本更新的目的。删除:docker rm portainer 的id。暂停:docker stop portainer。将其部署到云服务器上。

2024-01-25 21:32:04 984 1

原创 代码随想录 哈希表

判断一个元素是否出现集合里的时候,就要考虑哈希法常用的数据结构:数组,Set和Hashmap数组:常用于有限长度的集合,种类有限,例如小写字母,大写字母,将其映射到数组内,数组内可以存储字符出现的次数Set:特点是不含重复元素,当需要对数组去重处理时,则可以使用Hashmap:建立一种映射,映射双方可以自己定义,可以是数字出现的次数,调用对应的方法,常用于结果集合长度不确定的情况 去重不方便。

2023-10-30 15:29:47 95 1

原创 代码随想录 链表

链表相关题目常见的解决方案1.对链表进行操作时(包含对头节点的操作),通常在头节点之前插入一个新的虚拟头节点,避免操作过程中,头节点位置发生变化,最终只需返回dummyNode.next(新链表的头节点)2.如果改变指针朝向的过程中出现了无法定位的结点,可以定义新的指针暂存关键节点,缺少几个就补充几个。3.快慢指针 链表相交,链表有无环常用4.链表有无环的判定?环形的入口判定的推导?

2023-10-23 15:32:43 97 1

原创 代码随想录 数组

数组章节最长见解法为双指针(快慢指针)的运用(有待补充)快慢指针从同一起点出发,快指针用于遍历,慢指针用于更改/存储新的值双指针从两端出发,同时进行对比 选出符合条件的。

2023-10-13 11:21:30 73 1

原创 双非天坑专业一战上岸南京大学软件学院 (数学148)经验指南

南大是一所不歧视本科,只关注个人实力的良心学校,虽然在福利待遇方面略差,但是嚼得菜根,做得大事这一点大家也能理解。无论是双非还是92全部都一视同仁,对于想洗刷学历的同学来说是一所不可多得的好院校。关于上文提到的笔记,本人已存入百度网盘,有需要者可以评论区留言。不过数学总结这种东西,更推荐个人自己做,我的笔记毕竟是掺入了我自己对于题目的了解。772653586(配套会附赠电子材料 如ppt 丁二玉视频等)729038740可以白嫖一些资料和免费答疑 本人也在群里 有需要咨询者可以私聊。

2023-09-27 22:20:35 2045 7

原创 算法学习记录 8.18 数学知识(质数)

定义:在大于1的整数中,如果只包含1和本身这两个约数,就被称为质数或者素数。

2023-08-18 16:35:53 72 1

原创 算法学习记录 8.17 最短路(Floyd算法) 最小生成树(Prim算法 Kruskal算法)染色法判定二分图 匈牙利算法

基于动态规划思想见题解。

2023-08-17 16:51:07 98 1

原创 算法学习记录 8.16 最短路(Dijkstra算法 Bellman-Ford算法 SPFA算法)

1.定义一个数组dist表示源点到其余各个结点的距离,dist[i]表示源点到结点i的距离,数组dist内各个元素初始为无穷大用一个状态数组state标记是否找到源点到该结点的最短距离,如果为真,则表示找到了源点到该结点的最短距离,如果为假,则表示还没有找到源点到该点的最短距离 状态数组state初始为假2.源点到源点的距离为0 则dist[1]=03.遍历dist数组,找到一个未确定为最短路径的所有结点中离源点最近的结点。假设该结点编号为i,则更新对应的state数组:state[i]=true。

2023-08-16 16:28:11 82 1

原创 Linux基础(2)

功能:(1) 分屏。(2) 允许断开Terminal连接后,继续运行进程。结构:一个tmux可以包含多个session,一个session可以包含多个window,一个window可以包含多个pane。

2023-08-15 20:26:58 49

原创 算法学习记录 8.15 树和图的深度优先搜索 树和图的宽度优先搜索

树的重心给定一棵树,如果删除树中某个结点,剩余各个连通块分量有几种情况呢1.以它的孩子结点为根所在树的结点个数2.以它的父亲结点为根所在树的结点个数-以它为根所在树的结点个数定义两个变量sum用于存储每棵树的结点总数 res用来存储删除该节点后 连通图的最大点数利用ans来存储所有结点被删除情况下各个连通图最大点数的最小值。

2023-08-15 15:16:58 163

原创 算法学习记录 8.14 深度优先搜索 宽度优先搜索 树和图的存储

对比 数据结构 空间DFS: stack O(h) 不具最短性BFS: queue O(2^h) 最短路。

2023-08-14 17:10:37 96

原创 算法学习记录 8.11 哈希表

哈希表根据存储结构可以分为开放寻址法和拉链法。

2023-08-11 16:56:44 63 1

原创 算法学习记录 8.10 Trie树 并查集 堆

定义一个数组son用于记录每个结点孩子节点的下标 son[ p ][ u ]p表示父亲结点的位置 u表示孩子结点的名字定义一个数组cnt[ p ]表示该字符数组结尾作标记 表示已经存在例如son[ 0 ][ 1 ]=2 表示根节点有一个孩子‘b’的下标为2son[ 2 ][ 3 ]=4 表示结点b有一个孩子‘c’的下标为4常见操作:插入查找完整代码。

2023-08-10 18:47:07 62 1

原创 算法学习记录 8.9 单调栈 单调队列 KMP

省流:找出数列中每个数左边比它小且离它最近的数数列中的数是无序的 可以通过将递减数去除的方式将数列缩减成单调数列 便于查找左边最小值定义数组stk来存储单调递增的数字单调栈内 如果一个数比它右侧的数小了 那么它的左边的所有数都比他小题解定义两个数组a和q 数组a用来存放数列 数组q用来模拟队列 存放的是数列的下标首先读取数组a的数 判断当前队头存储的下标要在滑动窗口的范围内 如果队头存储的下标超出滑动窗口范围 则窗口向右移动一格。

2023-08-09 19:57:32 88 1

原创 算法学习记录 8.8 链表 栈和队列

这里采用的是数组模拟链表 而非传统意义上的结构体原因是生成一个结构体需要很长时间,作为算法题解而言数组模拟会更快一些开辟两个数组e和ne 其中数组e记录每个结点的值 数组ne记录当前结点所指向下一个结点的值定义idx和head idx表示当前结点 head表示头结点常见单链表的操作:1.向链表头插入一个数x先将值x存储到数组e中,新插入的结点指向头结点所指向的结点,头结点指向新插入的结点,idx顺位移动。2.删除第 k 个插入的数后面的数只需让第k个结点指向第k个结点指向的结点的下一个结点。

2023-08-08 15:51:43 44

原创 Linux基础 (1)

(7) cp XXX YYY: 将XXX文件复制成YYY,XXX和YYY可以是一个路径,比如../dir_c/a.txt,表示上层目录下的dir_c文件夹下的文件a.txt。(10) mv XXX YYY: 将XXX文件移动到YYY,和cp命令一样,XXX和YYY可以是一个路径;(4) ls: 列出当前目录下所有文件,蓝色的是文件夹,白色的是普通文件,绿色的是可执行文件。(6) cd XXX: 进入XXX目录下, cd .. 返回上层目录。(12) cat XXX: 展示文件XXX中的内容。

2023-08-08 09:45:51 41

原创 算法学习记录 8.7 双指针算法 位运算 离散化 区间合并

2023/8/7

2023-08-07 16:51:13 90 1

原创 算法学习记录 8.5 前缀和与差分

如给定区间[l,r] 求区间中元素的和 即。

2023-08-05 11:32:43 86 1

原创 算法学习记录 8.4 高精度运算

/从序列(List)的第0个元素开始依次循环,并且调用每个元素的equals()方法和参数对象进行比较,如果某一个元素的equals()方法返回值为true,那么就把当前元素的索引位置作为结果返回。//与indexOf()方法相反,它返回的是某个元素最后一次出现的索引位置的值,也就是它会从序列的队尾向队头进行遍历。定义:List A=new ArrayList(//可以是数组容器的长度 不确定可以不填)List集合中元素的个数:A.size();

2023-08-04 15:18:18 80 1

原创 算法学习记录 8.3 快速排序 归并排序 整数二分 小数二分

2023/8/3

2023-08-03 16:15:22 117

空空如也

空空如也

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

TA关注的人

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