
算法
长胖了的辣条
这个作者很懒,什么都没留下…
展开
-
快速排序模板
// 快排class Solution { public void quickSort(int[] arr, int l, int r){ //递归出口 if(l<r){ int m = partition(arr, l, r); //排序 quickSort(arr, l, m-1); quickSort(arr, m+1, r); } } publ原创 2022-02-11 11:44:07 · 714 阅读 · 0 评论 -
并查集模板
并查集介绍力扣1力扣2初始化,每个元素根节点指向自己int fa[MAXN];inline void init(int n){ for (int i = 1; i <= n; ++i) fa[i] = i;}查找根节点int find(int x){ if(fa[x] == x) return x; else fa[x] = find(fa[x]); return fa[x];}两个集合原创 2022-02-06 20:49:42 · 442 阅读 · 0 评论 -
dfs,bfs模板
使用dfs,bfs时都可以结合树状图去解题dfsdfs模板如下:void backtracking(参数) { if (终止条件) { 存放结果; return; } for (选择:本层集合中元素(树中节点孩子的数量就是集合的大小)) { 处理节点; backtracking(路径,选择列表); // 递归 回溯,撤销处理结果 }}bfsbfs使用队列,和层次遍历类似,因为是一层原创 2022-01-29 21:14:33 · 617 阅读 · 0 评论 -
01背包的一些要点
1。二维数组写法对于背包问题,有一种写法, 是使用二维数组,即dp[i][j] 表示从下标为[0-i]的物品里任意取,放进容量为j的背包,价值总和最大是多少。那么可以有两个方向推出来dp[i][j]:不放物品i:由dp[i - 1][j]推出,即背包容量为j,里面不放物品i的最大价值,此时dp[i][j]就是dp[i - 1][j]。(其实就是当物品i的重量大于背包j的重量时,物品i无法放进背包中,所以被背包内的价值依然和前面相同。)放物品i:由dp[i - 1][j - weight[i]]推.原创 2021-11-20 15:51:54 · 361 阅读 · 0 评论 -
回溯去重总结
1.不用数组力扣:40. 组合总和 IIclass Solution { List<List<Integer>> lists = new ArrayList(); List<Integer> list = new ArrayList(); int sum = 0; public List<List<Integer>> combinationSum2(int[] candidates, int target) {原创 2021-11-11 11:18:00 · 4134 阅读 · 0 评论 -
c++ unordered_map的访问效率
unordered_map是C++ Boost库中的内容,这里的unordered翻译成“无序”。但它并不是完全的“无序”的概念,而是散列式的存储方式。unordered库提供了两个散列映射类,unordered_map和unordered_multimap。它们用散列表代替了二叉树的实现,模板参数多了散列计算函数,比较谓词使用equal_to<>。看到这里,我们就应该明白,比起...转载 2020-02-12 17:06:08 · 2446 阅读 · 0 评论 -
KMP笔记
前缀表首先是理解前缀表,前缀表是用来回退的,它记录了模式串与主串(文本串)不匹配的时候,模式串应该从哪里开始重新匹配。记录下标i之前(包括i)的字符串中的最大相同前后缀长度。前后缀概念前缀是指不包含最后一个字符的所有以第一个字符开头的连续子串;后缀是指不包含第一个字符的所有以最后一个字符结尾的连续子串。如 “aabaaf” 中,"aabaa"是最长前缀,"abaaf"是最长后缀。“a”的前后缀长度都为0。前缀表计算方法长度为前1个字符的子串a,最长相同前后缀的长度为0。长度为前2个字符的子串转载 2021-08-29 16:06:05 · 111 阅读 · 0 评论 -
java中优先队列,TreeMap的一些总结
优先队列 PriorityQueue<int[]> queue = new PriorityQueue(new Comparator<int[]>(){ public int compare(int[] p1, int[] p2){ return p1[0]!=p2[0] ? p2[0]-p1[0] : p2[1]-p1[1]; //降序写法o2-o1, 小于时不改变顺序 } });comparator当方法的返回值大于0的时候就将原创 2021-10-12 16:05:32 · 496 阅读 · 0 评论