![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 53
就一枚小白
游戏客户端开发码农一枚~~~加油学习~~~
展开
-
C++希尔排序原理+代码实现(详细注释理解)
C++希尔排序原理+代码实现(详细注释理解)原创 2022-10-17 16:38:37 · 1095 阅读 · 0 评论 -
A*寻路基本概念和C++实现A*算法
A*寻路基本概念和C++实现A*算法原创 2022-08-10 16:36:34 · 556 阅读 · 5 评论 -
堆排序实现代码
堆排序原创 2022-08-07 15:56:39 · 348 阅读 · 0 评论 -
记忆化搜索+经典题型案例+详细解读
记忆化搜索+经典题型案例+详细解读原创 2022-04-07 13:23:24 · 436 阅读 · 0 评论 -
C++实现高精度除法
C++实现高精度除法原创 2022-04-06 16:52:40 · 1060 阅读 · 0 评论 -
树状数组解决区间问题:单点、区间修改,单点、区间查询
目录前言一. 单点修改,单点查询二. 单点修改,区间查询三. 区间修改,单点查询四. 区间修改,区间查询前言最近在复习算法的时候,刷到了一些针对于区间问题,所以在此记录。注:此文章默认会使用树状数组,不会的可以参考这一篇文章:树状数组详解一. 单点修改,单点查询这个很简单,我们直接使用单纯的数组就可以了。二. 单点修改,区间查询#include <iostream>using namespace std;const int N = 1e5 + 10;int tree[N原创 2022-03-25 22:27:04 · 723 阅读 · 0 评论 -
C++实现高精度乘法。图解+保姆式教学。
目录思路例子完整代码思路我们只需要普通地模拟数字的乘法就可以了。可以现在草稿纸上自己模拟下。例子876 * 43 = 37668图来自 高精度乘法 完整代码#include <iostream>#include <vector>using namespace std;vector<int> Mul(vector<int> v1, vector<int> v2){ vector<int>原创 2022-03-21 14:33:53 · 1170 阅读 · 0 评论 -
C++堆排序简单实现
目录前言完整代码参考文献前言最近在复习的时候,复习到了堆排序,简单了解后,做一个代码总结。注:本文章只对功能做一个实现。参考文献贴在文章末尾。完整代码#include <iostream>using namespace std;const int N = 1e5 + 10;int a[N];int n;void print(){ for(int i = 0; i < n; i++) cout << a[i] << ' '; cout原创 2022-03-20 21:00:21 · 1123 阅读 · 0 评论 -
C++实现高精度减法。保姆式教学。
目录思路例子第一步第二步第三步第四步第五步第六步第七步完整代码最后思路我们只需要普通地模拟数字的减法就可以了。我们这里为了方便,不管怎么样我们都是让大的数减去小的数。这里需要注意如果是小数减大数需要加负号。这里如果看不懂的话可以看下完整代码例子18 - 34 = -16第一步读取数字,将数字用vector存储起来。第二步模拟减法的时候我们是从数字尾部开始模拟的,所以为了方便我们可以先将vector反转。第三步我们需要让大的数减去小的数,这样会更加便捷。如果像是该例子,小的减大原创 2022-03-20 17:13:32 · 847 阅读 · 0 评论 -
C++实现高精度加法。保姆式教学。
目录思路例子第一步第二步第三步第四步第五步第六步第七步完整代码思路我们只需要普通地模拟数字的加法就可以了。例子18 + 34 = 52第一步读取数字,将数字用vector存储起来。第二步模拟加法的时候我们是从数字尾部开始模拟的,所以为了方便我们可以先将vector反转。第三步从初始位置开始相加,也就是4 + 8 = 12。第四步当前位置的数字则是12 % 10 = 2。第五步进位:12 / 10 = 1。第六步指针前移,继续第三步,只不过要再加上上一步的进位。也就是1 +原创 2022-03-20 16:39:41 · 798 阅读 · 0 评论 -
LeetCode Hot100 DFS经典题型:组合总和
目录前言做法为什么需要去重思路一思路二思路二分析前言最近再刷LeetCode的时候,写了一道DFS题型,发现这道题最难的就是去重,由于我做此类题型比较少,由此记录。先上题目:组合总数做法这个题我们直接DFS暴力搜索一边就可以了,但是难点就是在与去除重复元素。为什么需要去重产生重复的原因是:由于题目中说 每一个元素可以重复使用,我们是从下标为0的数字开始遍历到,所以考虑了所有的数字,因此出现了重复的列表。思路一我们这里可以用哈希表来进行去重,但是可能会比较麻烦。思路二我们可以定义一个be原创 2022-03-12 17:17:45 · 681 阅读 · 0 评论 -
LeetCode Hot100 DFS经典题型:括号生成
LeetCode Hot100 DFS经典题型:括号生成原创 2022-03-12 16:32:44 · 1689 阅读 · 0 评论 -
C++快速排序的几种实现方法+优化
目录左右挖坑互填左右交换三数取中优化完整代码左右挖坑互填//分割数组int partition(int a[], int l, int r){ int begin = l; int x = a[l]; while(l < r){ while(l < r && a[r] <= x) r--; a[l] = a[r]; while(l < r && a[l] >= x) l原创 2022-02-25 16:58:22 · 760 阅读 · 0 评论 -
DFS暴搜剪枝经典题型--Acwing 165. 小猫爬山
前言我觉得这个题目算是比较经典的DFS暴搜题型,每次复习暴搜都一定会刷这个题,这个题的题解思路很清晰,很有暴搜的味道,所以我在此记录下。原题链接题目描述输入格式输出格式数据范围输入样例5 19961219941229输出样例2#include <iostream>#include <algorithm>using namespace std;const int N = 20;int w[N], che[N];int n, m原创 2022-01-23 15:44:55 · 311 阅读 · 0 评论 -
最小生成树:Kruskal算法题目
题目链接题目农夫约翰被选为他们镇的镇长!他其中一个竞选承诺就是在镇上建立起互联网,并连接到所有的农场。约翰已经给他的农场安排了一条高速的网络线路,他想把这条线路共享给其他农场。约翰的农场的编号是1,其他农场的编号是 2∼n。为了使花费最少,他希望用于连接所有的农场的光纤总长度尽可能短。你将得到一份各农场之间连接距离的列表,你必须找出能连接所有农场并使所用光纤最短的方案。输入第一行包含一个整数 n,表示农场个数。接下来 n 行,每行包含 n 个整数,输入一个对角线上全是0的对称矩阵。其中原创 2022-01-20 15:41:36 · 232 阅读 · 0 评论 -
最短路径算法:Dijkstra:普通+堆优化
前言关于这个算法的证明本人就不阐述了,大家可以看看这个文章。最短路算法题目给定一个 n 个点 m 条边的有向图,图中可能存在重边和自环,所有边权均为非负值。请你求出 1 号点到 n 号点的最短距离,如果无法从 1 号点走到 n 号点,则输出 −1。输入第一行包含整数 n 和 m。接下来 m 行每行包含三个整数 x,y,z,表示存在一条从点 x 到点 y 的有向边,边长为 z。输出输出一个整数,表示 1 号点到 n 号点的最短距离。如果路径不存在,则输出 −1。数据范围输入样例原创 2022-01-20 15:36:45 · 147 阅读 · 0 评论