常用算法
Silent_Blue_Sky
欢迎留言讨论
展开
-
关于double精度的问题的思考
在算法题中, 万恶的double精度经常让我们痛苦不堪, 下面对算法中double的进度问题进行一些思考。本文会围绕两个问题进行思考2、double 比较。原创 2024-04-22 12:49:26 · 483 阅读 · 0 评论 -
c++ 线段树的优雅实现
【代码】c++ 线段树的优雅实现。原创 2021-02-26 15:57:06 · 143 阅读 · 1 评论 -
c++ 字符串排序-高位优先排序
【代码】c++ 字符串排序-高位优先排序。原创 2022-09-20 12:28:58 · 278 阅读 · 0 评论 -
c++ 关于bfs和dfs的相对统一写法
有向图bfs有向图dfs有向图拓扑排序着重看看bfs 和 dfs 实现的差异性, 了解二者的相似和不同。原创 2022-08-30 16:45:31 · 336 阅读 · 0 评论 -
c++ 堆和堆排序的基本实现
c++ 堆和堆排序的基本实现原创 2022-08-25 12:48:36 · 283 阅读 · 0 评论 -
python 随手写的堆排序
python 随手写的堆排序原创 2022-08-24 17:54:19 · 424 阅读 · 0 评论 -
c++ 字符串匹配算法Robin-Karp算法
#include <iostream>#include <utility>#include <string>#include <cstring>#include <vector>#include <map>#include <set>#include <stack>#include <queue>#include <unordered_map>#include <原创 2021-08-26 19:33:13 · 627 阅读 · 0 评论 -
c++ 字符串匹配算法sunday算法
代码】c++ 字符串匹配算法sunday算法。原创 2022-08-03 20:19:56 · 359 阅读 · 0 评论 -
c++ n-sum通用模板
注意因为是通用模板,所以中间有很多难以避免的拷贝,性能最终并不是非常好vector<vector<int>> nSumHelper(const vector<int> &nums, vector<int> &before, int n, int target) { vector<vector<int>> res; if (n <= 0) { return res; }原创 2021-11-01 20:16:53 · 230 阅读 · 0 评论 -
c++从堆到哈希堆
#include <iostream>#include <utility>#include <string>#include <cstring>#include <vector>#include <map>#include <set>#include <stack>#include <queue>#include <unordered_map>#include <原创 2021-06-16 20:21:46 · 232 阅读 · 0 评论 -
c++ 大数乘法并取模
#include <iostream>#include <utility>#include <string>#include <cstring>#include <vector>#include <map>#include <set>#include <stack>#include <queue>#include <unordered_map>#include <原创 2021-06-16 16:40:55 · 1080 阅读 · 0 评论 -
c++扩展欧几里德算法 + 求逆元 + 中国剩余定理
【代码】c++扩展欧几里德算法 + 求逆元 + 中国剩余定理。原创 2021-06-15 20:01:39 · 222 阅读 · 0 评论 -
c++动态规划算法-01背包问题
所谓动态规划, 只是暴力搜索的优化而已当你能写出暴力搜索, 动态规划就不远了#include <iostream>#include <utility>#include <string>#include <string.h>#include <vector>#include <map>#include <set>#include <stack>#include <queue>#in原创 2021-05-28 19:28:37 · 331 阅读 · 0 评论 -
c++ ac 自动机的实现
#include <bits/stdc++.h>using namespace std;typedef long long ll;struct triesNode { int children[26]; int fail; int end; int sum; inline void reset() { for (int i = 0; i < 26; ++i) { children[i] = 0;原创 2021-05-18 19:27:15 · 292 阅读 · 0 评论 -
C++ 二分总结
二分总结二分插入, 返回有序数组二分插入的位置, 若存在则返回-1 int binaryInsert(vector<int>& nums, int val) { // 这个可以不用加这个条件 if (nums.empty()) { return 0; } int low = 0, high = nums.size() - 1; while (low + 1 < hi原创 2021-03-30 17:10:38 · 159 阅读 · 1 评论 -
c++ 字符串匹配算法kmp算法
kmp 算法不好理解。原创 2021-01-20 15:43:26 · 82 阅读 · 0 评论 -
滑动窗口问题
滑动窗口问题https://leetcode-cn.com/problems/sliding-window-maximum/solution/ vector<int> maxSlidingWindow(vector<int> &nums, int k) { vector<int> res; slidingWindows r(nums, k, greater<int>()); res.push_back原创 2020-10-14 12:48:58 · 122 阅读 · 0 评论 -
c++-基本排序算法的实现
1、包括2、冒泡3、选择4、插入5、归并6、快排7、堆排序。原创 2019-08-13 14:01:32 · 92 阅读 · 0 评论 -
求最大公约数
// 递归实现int gcd(int a, int b) { if (a < b) { a ^= b; b ^= a; a ^= b; } if (b == 0) { return a; } else gcd(b, a % b);}// 非递归实现int gcd(int a, int b) {原创 2017-10-11 16:48:40 · 115 阅读 · 0 评论 -
埃拉托色尼筛选法-求素数
// 埃拉托色尼筛选法- 求素数void getprimes(int n) { int result[n]; for (int i = 0; i < n; ++i) { result[i] = i + 1; } for (int j = 2; j * j < n; ++j) { int idx = j; while(i原创 2017-10-11 13:31:08 · 582 阅读 · 0 评论 -
快速幂的实现
// 问题二: 快速幂// 时间复杂度 O(logn)int Pow(int x, int n) { if(n == 0) { return 1; } if(n & 0x1) { return Pow(x*x,n >> 1) * x; } else { return Pow(x * x, n >> 1); }原创 2017-10-02 21:29:02 · 134 阅读 · 0 评论 -
c++ 快速选择排序-递归和非递归实现
史上最好记的快速排序。原创 2017-09-29 00:03:17 · 330 阅读 · 0 评论