会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
80k
博客园
首页
新随笔
联系
订阅
管理
上一页
1
···
16
17
18
19
20
21
22
23
24
···
28
下一页
2021年12月19日
AcWing 算法基础课 Trie
摘要: Trie树可以用来存储前缀字符串/数组。 可以用数组进行模拟 son[N][26] 记录节点的son cnt[N] 记录以当前节点为最后字符的字符串出现的次数 idx当前用到的节点 例题 143. 最大异或对 #include<iostream> using namespace std; const
阅读全文
posted @ 2021-12-19 18:51 80k
阅读(78)
评论(0)
推荐(0)
2021年12月12日
侯捷C++ static成员变量,类模板,函数模板
摘要: 侯捷C++ static成员变量静态成员变量必须在类外初始化(定义)。这样可以保证static成员变量只被初始化一次。 模板函数作为模板类的友元时,声明也要加template<T>
阅读全文
posted @ 2021-12-12 21:18 80k
阅读(59)
评论(0)
推荐(0)
AcWing 算法基础课 KMP
摘要: KMP用于o(n)的字符串匹配。 使用next数组记录以当前阶段为后缀的,和以开始位置为前缀匹配的最长长度,即匹配过程中进行后移后保留的长度。 next数组的计算和匹配过程类似。 推荐数组从1开始计数 注意,自身match时,是不包含当前位置的前缀,而互相match时,是包含当前位置的前缀,所以两次
阅读全文
posted @ 2021-12-12 15:40 80k
阅读(120)
评论(0)
推荐(0)
AcWing 算法基础课 栈和队列
摘要: 可以用数组直观的模拟栈和队列,栈记录栈顶位置,队列记录头和尾。 单调栈和单调队列可以用来记录有单调性的数据,当插入新数据时,将违反单调性的数据删去,保持单调。 可以查找,距离最近的小于当前数据的位置,以及滑动窗口内的极值。
阅读全文
posted @ 2021-12-12 14:29 80k
阅读(40)
评论(0)
推荐(0)
AcWing 算法基础课 链表
摘要: 链表一般不用结构体创建(new的使用很慢) 而是用邻接表进行表示 两个数组分别e[]和ne[]分别记录节点的值和下一个节点的编号 head记录头结点指向的位置,idx表示当前可以使用的节点 用数组模拟链表时,删除链表无法释放内存,但是运行速度快。 双链表则用e[]和l[]和r[]记录; 可以将单链表
阅读全文
posted @ 2021-12-12 10:50 80k
阅读(65)
评论(0)
推荐(0)
2021年12月11日
AcWing 算法基础课 整数离散化
摘要: 用于数据范围大但稀疏的数据 unique可以用来去重; unique(v.begin(),v.end()); 返回值指向最后一个无重复元素的下一位; 可以用 v.erase(unique(v.begin(),v.end()),v.end())去除有序数组中的重复元素。 对有序无重复数组,查找可以使用
阅读全文
posted @ 2021-12-11 10:50 80k
阅读(75)
评论(0)
推荐(0)
AcWing 算法基础课 位运算
摘要: x&(-x)可以取得x的最后一位1. x&(x-1)可以去掉x的最后一位1.
阅读全文
posted @ 2021-12-11 10:44 80k
阅读(38)
评论(0)
推荐(0)
2021年12月9日
AcWing 算法基础课 前缀和、差分
摘要: 前缀和可以快速求部分和有一维和二维的实现。数组的下标最好从1开始前缀和下标从0开始,以统一求a1~ai时的接口 差分主要用于对某个区间同时进行加减前缀和的逆运算可以用o(n)的时间恢复原数组d[i]=a[i]-a[i-1];AcWing 797. 差分#include<iostream> using
阅读全文
posted @ 2021-12-09 10:47 80k
阅读(74)
评论(0)
推荐(0)
2021年12月8日
AcWing 算法基础课 大整数、高精度
摘要: 大整数用数组表示第一位写在index=0的位置,因为运算可能进位。vector<int> 自带size(),方便表示大整数;输出的时候要反向 高精度加法要记得最后加上carryvector<int> add(vector<int> &A, vector<int> &B){ if (A.size()
阅读全文
posted @ 2021-12-08 20:28 80k
阅读(68)
评论(0)
推荐(0)
LeetCode 剑指 Offer 51. 数组中的逆序对
摘要: 求数组的逆序对可以用归并排序的思想。在归并的过程中,求出当前范围的逆序对数。只需在归并排序的代码中多加一行 void MergeSortAndReversePairs(vector<int> &nums,int l,int r) { if(l>=r) return; int mid=(l+r)>>1
阅读全文
posted @ 2021-12-08 20:20 80k
阅读(34)
评论(0)
推荐(0)
上一页
1
···
16
17
18
19
20
21
22
23
24
···
28
下一页
公告