![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
xx_xb
这个作者很懒,什么都没留下…
展开
-
算法-Tire树
总体思路为将待求数二进制形式存储在Tire树中,通过树型数据结构快速求取某数的最佳匹配值,最后求与运算。重在理解tire树的物理结构和逻辑结构。index相当于一个分配器,只有需要插入新结点时才会增加。ps:不是放在这章里真的一点想不到这个方法。为什么son取M=N*31。原创 2023-08-27 21:26:57 · 57 阅读 · 0 评论 -
算法-堆排序
因为建小堆可以选出最小的数即根节点,我们将每次建好的小堆的最后一个叶子节点和根节点进行交换,交换后不把最后一个数看作堆里的数据,此时根的左右子树依旧是大堆,然后我们再用向下调整算法选出次小的如此循环直到堆里剩一个数结束。down操作中,u负责存储原数,比较时要以用u为准,t在比较过程中可能被修改。堆的物理结构为数组,实现时为了方便计算,从下标1开始存储。原创 2023-08-14 19:35:18 · 63 阅读 · 0 评论 -
算法设计与分析-斐波那契数列
原创 2023-05-05 20:27:15 · 53 阅读 · 0 评论 -
算法-单调队列
找最小值:建立单调队列,并保持队列长度小于等于设定的K值,每次读入新值时,如果新值大于队尾值则再保证队列长度的情况下往队尾插值,如果新值小于队尾值,则队尾退至最小于新值的合法位置(地址大于等于队头)。用队列模拟窗口,在窗口中暴力搜索最小值/最大值,时间复杂度为O(n^2)初始值r=-1的原因首次写入时单调队列下标为0,统一规范。代码实现注意点:在窗口容满时才开始输出,r- -和r++书写为队列规范。原创 2023-08-11 20:19:35 · 35 阅读 · 0 评论 -
算法-单调栈
用单调递增栈,当该元素可以入栈的时候,栈顶元素就是它左侧第一个比它小的元素。注意此处使用的单调栈从下标为1开始存储,栈顶为0说明当前栈为空。原创 2023-08-11 12:09:04 · 30 阅读 · 0 评论 -
算法-链表
不使用结构体&指针链表的原因:new函数效率很低,在输入大量数据时会导致超时。使用index 0和1 作为双链表的两端点,读入参数的index初始值为2。注意双链表不仅要更改左值,还要更改另一个方向的值。add函数利用双链表的特性简化为传参实现不同功能。故使用两个数组模拟链表在内存中的运行逻辑。其余用数组模拟指针地址来模拟链表。原创 2023-08-10 20:06:36 · 23 阅读 · 0 评论 -
算法-ACwing788-逆序对数量
利用归并排序,在归并时算得逆序对数量。原创 2023-07-19 12:44:11 · 55 阅读 · 0 评论 -
算法-整数二分
此处不令r=mid-1的原因:如过按照上一个二分的写法,循环判断条件还是l原创 2023-07-20 16:31:04 · 31 阅读 · 0 评论 -
算法-浮点数二分
解题思路:利用二分查找,注意点为若想提高精确度,可将初始区间选择为max(1,x)原创 2023-07-20 17:08:18 · 28 阅读 · 0 评论 -
算法-高精度
将超长整数倒序放入vector(利于进位变换),模拟人手算,创建一个坑整数,用于存储每次两数相同位相加后的结果,小于10的部分放在当前位,大于10取余加到上一位。数存储方式与上题相同,t作为工具变量存储借位,(t+10)%10借位补算和补算纠错,而t本身存储的负值不变,循环结束后使用while循环去除前导0;代码实现时要注意的是,所得的vector C为解的反vector 需要对其reverse ,然后去解的前导零。长整数的每位分别与短数相乘,大于十的部分进位,小于十的部分留下。原创 2023-07-24 10:33:10 · 31 阅读 · 0 评论 -
算法-前缀和
全部和:S【i】【j】=S【i-1】【j】+S【i】【j-1】-S【i-1】【j-1】+a【i】【j】空间换时间,添加一个前N项和的数组。将S0设为0,便于之后统一公式。原创 2023-08-07 11:31:33 · 24 阅读 · 0 评论 -
算法-差分
前缀和的逆运算,总体思路为使An做Bn的前缀和。原创 2023-08-07 18:15:30 · 24 阅读 · 0 评论 -
算法-双指针
依然是空间换时间,设立一个temp数组用于存储在当前最大序列种每个元素的个数,当检查到新加入元素在当前最大子序列中的个数(temp[a[i]])大于1时,将 j向右移动至重复元素之右。则B[j+1]到B[m]不可能与当前A[i]匹配。原创 2023-08-08 11:59:50 · 31 阅读 · 0 评论 -
算法-区间和
注意点:代码中对容器进行排序去重操作是针对查询坐标的重复,而非数轴上加减法的操作。利用前缀和算法改进后可通过检测。原创 2023-08-09 18:53:28 · 24 阅读 · 0 评论 -
算法-1-排序
3、递归处理左右两边。2.递归排序left,right。原创 2023-07-17 20:51:06 · 36 阅读 · 1 评论 -
算法-区间合并
注意add读完后要将最后一组st,ed存入res。原创 2023-08-10 11:51:44 · 25 阅读 · 0 评论