自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 力扣每日一题 直角三角形

中等 数学给你一个二维 boolean 矩阵grid。请你返回使用grid中的 3 个元素可以构建的数目,且满足 3 个元素值为 1。grid2有 2 个直角三角形。0没有直角三角形。2有两个直角三角形。

2024-08-02 22:14:29 528 1

原创 数学算法——快速幂

利用这个性质,可以防止数据过大溢出,毕竟C++中long long也只能存1e18的数据(如果不考虑用数据模拟高精度乘法的话),我们在计算时就跳过,不把它乘进结果当中去,下面是计算思路,设res=1,存储结果。二进制取幂的想法是,我们将取幂的任务按照指数的 二进制表示 来分割成更小的任务。对于11来说,它的二进制从低往高数第三位是0,对应。,处理末尾的1:计算a res=res*a。好了,言归正传,快速幂,怎么个快速法呢?11,处理0:对应二进制数为0,跳过。,根据指数的运算法则,

2024-07-30 22:19:58 322 1

原创 力扣每日一题 双模幂运算

1) 对于下标 0 ,variables[0] = [39,3,1000,1000] ,(393 % 10)1000 % 1000 = 1。1) 对于下标 0 ,variables[0] = [2,3,3,10] ,(23 % 10)3 % 10 = 2。2) 对于下标 1 ,variables[1] = [3,3,3,1] ,(33 % 10)3 % 1 = 0。3) 对于下标 2 ,variables[2] = [6,1,1,4] ,(61 % 10)1 % 4 = 2。

2024-07-30 21:19:04 309

原创 力扣每日一题 棒球比赛

"+" - 记录加 9 + 5 = 14 ,记录现在是 [5, -2, -4, 9, 5, 14]"+" - 记录加 -4 + 9 = 5 ,记录现在是 [5, -2, -4, 9, 5]"D" - 记录加 2 * -2 = -4 ,记录现在是 [5, -2, -4]"9" - 记录加 9 ,记录现在是 [5, -2, -4, 9]"4" - 记录加 4 ,记录现在是 [5, -2, 4]"-2" - 记录加 -2 ,记录现在是 [5, -2]"2" - 记录加 2 ,记录现在是 [5, 2]

2024-07-29 12:54:28 737 1

原创 力扣每日一题 满足距离约束且字典序最小的字符串(贪心)

可以证明 "aaaz" 是在任意次操作后能够得到的字典序最小的字符串。"xaxcd" 和 "aawcd" 之间的距离等于 k = 4。"zbbz" 和 "aaaz" 之间的距离等于 k = 3。将 s[0] 改为 'a' ,s 变为 "aaxcd"。将 s[2] 改为 'w' ,s 变为 "aawcd"。将 s[0] 改为 'a' ,s 变为 "abbz"。将 s[1] 改为 'a' ,s 变为 "aabz"。将 s[2] 改为 'a' ,s 变为 "aaaz"。因此,答案是 "lol"。

2024-07-27 15:00:08 493

原创 力扣每日一题 找出分区值

可以将数组 nums 分成 nums1 = [10] 和 nums2 = [100,1]。可以将数组 nums 分成 nums1 = [1,2] 和 nums2 = [3,4]。- 数组 nums1 的最大值等于 10。- 数组 nums2 的最小值等于 1。- 数组 nums1 的最大值等于 2。- 数组 nums2 的最小值等于 3。分区值等于 |10 - 1| = 9。分区值等于 |2 - 3| = 1。可以证明 1 是所有分区方案的最小值。可以证明 9 是所有分区方案的最小值。

2024-07-26 16:19:35 222 1

原创 力扣每日一题 生成特殊数字的的最少操作

当遇到字符0时,判断nums[0]是否为有效值,如果有效,此时构成XXX00式的数字,可以被25整除,他俩中间的字符都是需要去掉的,即中间nums[0]-i-1个数字字符,当然我们并不需要真的在字符串中删除它,只要返回需要删除的长度即可,你以为这就是答案吗,错,因为我们判断的00并不一定在字符串的末尾,在0后面的数字字符也是需要去除的,即num.size()-nums[0]-1,加上中间需要去除的字符,这种情况的答案就是num.size()-i-2。当遇到字符5时,判断nums[0]是否有效,答案同上。

2024-07-25 15:51:28 271 2

原创 力扣每日一题 引爆最多的炸弹(bfs)

每个炸弹有一个范围,引爆这个炸弹后炸弹范围内的炸弹会被引爆,以此类推直到所有范围内的炸弹全部炸完,这是经典的广度优先搜索思路就是把初始点入栈,然后取出栈顶坐标判断bombs数组中是否有栈顶坐标炸弹范围内的炸弹,有的话就入栈,直至栈空为止。这题要求只引爆一个炸弹,因为数组大小限制在了50以内,我们可以循环对每一个炸弹为起点做一遍bfs,然后每次更新引爆炸弹数目。在它爆炸范围内的炸弹都会被引爆,这些炸弹会进一步将它们爆炸范围内的其他炸弹引爆。定义为以炸弹为圆心的一个圆。个炸弹的 X 和 Y 坐标,

2024-07-22 23:12:54 140

原创 我的创作纪念日

起初开始刷算法是因为蓝桥杯三百块的报名费,对我来说真的很多,我想尽可能的不要辜负我花的钱,慢慢的就刷出兴趣来了,但是刷到后期的时候很多题目都是需要一定的数学天赋的,而我的数学基础很差,就很苦恼,只能一边补数学知识一边刷题,你们知道吗,在大学一年级的时候学C语言老师出了个找质数的题目,那个时候我连质数是什么都不知道。所以我觉得一切都是有可能发生的吧,我当初报名的时候也没想到也能打进国赛呢,勇敢去做想做的事情吧,各位。以后遇到有趣的算法题或者学完一些知识我会分享到这上面来,写一些题解啥的,希望涨点粉丝吧。

2024-07-22 18:21:39 430 4

原创 单源最短路径

今天回顾了单源最短路径,还是首推迪杰斯特拉算法,非常好用的一个算法,当然涉及到负权就要利用spfa了,说到单元最短,那就离不开多源最短路径,我会在后续文章中更新多源最短路的算法。

2024-05-21 22:35:53 1480 2

原创 图论系列:图的存储

图的存储方式

2024-05-10 22:06:43 1139 2

原创 初步学完二叉树后的一些理解

最近学习了二叉树这个数据结构,二叉树,顾名思义,它的存储结构看上去就是一个最多分两个叉的树,如下图,就是一颗经典的二叉树在二叉树中,每个节点最多有一个前驱节点,最多有两个后区节点,我们把前驱节点叫做父节点,后驱节点叫做子节点,如上图中,节点A是节点B的父节点,同时B节点是A节点的左子节点,子节点根据它的所在位置分为左右节点。

2024-04-23 22:27:51 372 1

原创 深度优先搜索

深度优先搜索呢,使用它的主要目的就是“一条路走到黑”,比如在上一段描述的迷宫问题中,深度优先搜索就是找到一个可以走的格子就直接去到那个格子,然后继续看有哪个格子可以走继续走,直到无路可走或者到达终点,此时返回上一个节点。按照它们俩的理念来说,广度优先就是尽可能的多做尝试,比如要你在迷宫中找到目标点,我们就需要看遍四周的路看看那个可以走通,能走通就加入备选队列中,然后不断从队列中取坐标点继续重复上述操作直到找到目标或者无路可走,按照广度优先搜索的特性,它适合用来求最短路问题,或者是求某个操作的最小值。

2024-03-25 22:28:20 328

原创 广度优先搜索 C++队列 P1141 01迷宫

搜索算法算是比较常用的一个基础算法,主要应用在图论中,最常见的是迷宫问题。今天本人又回顾了以前学习过的搜索算法并且在洛谷上刷了几道题,想着拿其中一道题来写个体会。首先,广度优先搜索,顾名思义,尽可能多的向外扩散,比如我现在处在一个大棋盘中的某一个格子上,我就要把四周每个各自都探测一遍,然后在探测过的每一个格子的基础上继续向外扩散一圈,直到所有格子都被探测一边为止,我们完成了一个搜索。那么怎么用代码实现这个算法呢?

2024-03-22 21:48:39 977

原创 一维二维差分

前面一篇中介绍了前缀和的概念,这里继续介绍差分,实际上差分就是前缀的逆运算。

2024-03-21 19:55:52 320

原创 一维与二维前缀和

再利用前缀和数组之前我们先来简单证明一下:有l<=r,根据定义,sum[l-1]=a[1]+a[2]+...+a[l-1],sum[r]=a[1]+a[2]+........+a[r],那么sum[r]-sum[l-1]=a[l]+a[l+1]+.....+a[r],就是我们要求的区间和。对于一个长度为n的一维数组a[1] a[2] a[3]......a[n],存在一个数组sum[i],其中sum的每一项sum[i]的值等于a[1]到a[i]的和。假设我们要输入一个长度为n的数组a,对它构造前缀和数组。

2024-03-21 09:01:57 448 1

原创 新人初学贪心算法

刚开始做时,不知道贪心是什么个操作,就纯用代码模拟题目,最愚蠢的是刚开始我用定义了一个牛棚总数大小的数组来模拟牛棚,赋初值为0代表没有牛,后面根据输入的信息将有牛的牛棚赋值为1,然后从头到尾遍历牛棚数组,遇到一个有牛的牛棚后计算它和上一个牛棚的距离和下一个牛棚的距离,如果距离上个牛棚近它们就用一块板子,否则将它和下一个牛棚绑定在一起,木板数量+1,同时计算木板的长度;这个初学者就是我,刚开始想刷贪心的题目练练手的,想着先学习一下他的具体用法,结果发现贪心根本就没有套路,需要不断刷题来培养贪心思路。

2024-03-16 22:39:55 371 3

空空如也

空空如也

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

TA关注的人

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