- 博客(24)
- 收藏
- 关注
原创 线段树 基础操作 区间查询 单点操作
2 build 这一步操作 实现了 构建tree[]这一个线段树数组。废话不多说 直接上代码 对递归不理解的小朋友 可能有点吃力哦。4modify 实现了从 x 位置 上 + v 的操作。1 pushUp 这一步 更新了 结构体数组 的和。综合操作分为4部分 均为模板代码 剖析下来就是堆。3 query 实现了从l - r的区间查询。
2025-04-09 16:32:27
343
原创 最短路之dijkstra算法 堆优化实战题目 蓝桥杯
基于 n m 同一数据量 范围 使用堆优化版本 小顶堆。java题解 (不会的可以在评论区提问 我进行讲解)
2025-03-31 22:58:00
809
原创 试除法 -- 分解质因数
这个缩短时间复杂度 因为N中最多有一个质因数大于sqrt(n) 所以最后单独判断即可。在不断的循环中已经将之前的合数都筛掉了很细节 可以好好带个数体验一下。给定一个数字 n 分解质因数。
2025-03-21 18:11:31
248
原创 试除法判断质数(素数)-- 算法比赛数学知识常用
可以发现 整除数据成对出现 可以用 i <= n / i来判断 可以防止溢出风险。暴力 从 2 -- n-1遍历 是否能 整除 如果可以 不是素数 否则反之。数学知识:如果一个数 只能被 1 和 本身整除 这个数就是素数。前提(这个数 > 1)的整数。
2025-03-21 11:16:30
204
原创 经典BFS之走迷宫
定义一个新的存储结构 PII 包含两个 first second 表示x 和 y。思路:g[][] 存储图的数据 d[][]当前的步数。最终输出d[n-1][m-1] 就是解。很典型的一层一层找 而不是走到底部的dfs 找到最短路的情况。hh队列头 tt为索引不断加入队列。用位移法实现一层一层搜索。BFS使用队列常见 手动队列实现达到优化。欢迎评论区讨论哟~~~~求 走出迷宫的路径长度。1 不可走 0 可走。
2025-02-23 16:19:54
565
原创 dfs应用实战篇
很浅显的DFS 邻接矩阵存储两个点是否联通,如果联通当前点计数器加1。蓝桥杯国赛C组 来源蓝桥官网 和 洛谷 --如有侵权请联系我删除。最后根据判断点数是否等于线路数确定是否为关键点 最终答案+1。源代码如下 希望大家一起讨论哦哦哦哦~~~java。sum表示总线路几条 ans表示答案。n点数 m通道数 uv表示两点邻接。如果走到最终回路,线路数字加1。cnt[i]表示该点计数了几次。bj[]表示当前点是否用过。a[][]表示临界矩阵。
2025-02-23 11:09:27
770
原创 哈希表之蹲坑法
通过相应的数据根据Mol规律先后插入h[k]中 如果有数据,象后遍历,找到空位置插入。//k的含义 如果在哈希表中 k表示数据的下标 如果不在哈希表中,k表示应该存储的位置。巨大数据 通过Mol数值得到相应有 规律的数据。对应编译器输出结果为200003。一般开数组到输入数据2~3倍。找质数方法如200000为例子。上代码(背诵熟练更好)
2025-02-16 21:55:17
267
原创 并查集---树优化
通过树的形式,找到两个数组的父节点,其中一个父节点的父亲指向另一个数组的父节点;如果两个数据的父节点相同,在同一个数组里。通过树的形式,先使数组的父亲指向自己,递归的思想查询父节点。1 查询两个数据是否来自于一个数组。
2025-02-13 17:56:27
236
原创 Trie 树 算法
更新当前字母位置 p = son[p][u] 当字符串输入完了。实现原理:根节点 向下不断 探索是否出现 新的未知的 元素 如果出现 idx++;基本模板题目 不断插入字符串 根据给定输入 求给定单词出现多少次。
2025-02-12 11:17:50
220
原创 字符串处理之KMP算法
在字符串中,找到一个子串在模板串中的各种存在位置,如果要一遍一遍遍历,会非常浪费时间。因此诞生了KMP算法,核心观念是 省掉了一部分比较的部分,类似于递归。//实现next数组 存储最长公共子串。next数组 存储 最长前后公共子串。
2025-02-11 20:37:31
393
原创 单调队列-数据结构与算法
优化 : 考虑用队列存储 因为窗口华东过程中 窗口头元素会弹出 下一个元素会。因为下一个进入的元素一定会和此时里面所有的元素比较。进入,刚好队列符合条件。单调队列解决了这个问题,优化了时间。题目情景:给定一些数据 给定窗口大小 找到窗口中的大数和小数 输出。一般数据量很大百万*百万。q[] 数组 表示队列 存储的是元素的下标。用hh表示对头 tt表示队尾。a[] 数组 表示数据。常见问题--窗口问题。
2025-02-10 18:15:55
285
原创 单调栈--应用场景
读入数字 如果当前数字比前一个数字大,输出前一个数字,将当前数字存入栈数组。若前方数据均小于他 栈空 输出-1 将此数据重新加入栈中。如果比前一个小,不断是前面数据出栈,直到找到比他小的为止。读入一串数字 找到满足左侧靠他最近的比他小的数字。核心 满足再栈中的数据单调。
2025-02-09 17:10:06
167
原创 手动数组模拟栈-熟悉数据结构
else if(op.equals("empty")){//通过索引值来判断栈是否为空。//索引方便实现相关操作。//先扩充一个空间,存储加入的数据。//直接索引左移,将栈顶抛出。
2025-02-08 17:59:49
234
原创 单链表静态数组java
/将空格作为数组分割线,存储每一次的数据。//将读取的字符串流转化为整数型,后面同理。//算法题数据量大 用BufferedReader 读取数据。e 存储的value 值。en 存储的指针next。
2025-02-07 17:13:01
295
原创 蓝桥杯中关于Java的高精度问题
remainder 可得到所得的余数。divide 可得到所得的商。高精度减法-subtract内置方法。内置multiply 方法。高精度加法-add内置方法。使用过程中用字符串读取。
2025-02-05 12:20:51
503
原创 逆序对的数量 数据量大-归并排序思想
int k = 0;int i = l;else {m < k;return res;i < n;sc.close();
2025-02-04 00:51:34
185
原创 快速排序2 详细解读版本
来源ACWING 786 第K个树题目如下:给定一个长度为 nn 的整数数列,以及一个整数 kk,请用快速选择算法求出数列从小到大排序后的第 kk 个数。
2025-02-02 20:50:13
564
1
原创 快速排序 - ACWING 753
来源ACWING 753 快速排序题目如下:给定你一个长度为 nn 的整数数列。请你使用快速排序对这个数列按照从小到大进行排序。并将排好序的数列按顺序输出。
2025-02-02 20:27:18
328
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人