
算法总结
技术的边界
这个作者很懒,什么都没留下…
展开
-
深度优先搜索 dfs可视化【递归 && 非递归】
打印了栈的大小,总觉得dfs不能直观的感受 ,打印了一下变化的过程#include <iostream>#include <set>#include <vector>#include <map>#include <stack>#include <tuple>#include <algorithm>#include <iterator>#include <unordered_set>原创 2021-06-23 20:59:23 · 319 阅读 · 0 评论 -
树的三种遍历:递归+非递归
/** * struct TreeNode { * int val; * struct TreeNode *left; * struct TreeNode *right; * }; */class Solution {public: vector<int> v1; vector<int> v2; vector<int> v3; TreeNode* fistOr(TreeNode* r){原创 2021-05-20 09:32:53 · 134 阅读 · 0 评论 -
Dijskra & Floyd & bellman Ford
可供测试的样题牛客链接注意这个题目里面的边是会重复出现的,我们只保留所有重边中最小的那个Dijstraclass Solution {public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param n int 顶点数 * @param m int 边数 * @param graph intvector<vector<>> 一维3个数据,表示顶原创 2021-05-19 16:40:13 · 190 阅读 · 0 评论 -
leetcode 239. 滑动窗口最大值:最大堆+Mp || 双端队列
最大堆+Mp记录位置为数不多的不看题解过的一个题,时间超越7%也是没谁了按照 1s处理数据规模最大107来计算10^{7}来计算107来计算我们建立一个大小为k的堆,用来维护滑动区间里面的数字,堆顶就是最大值了,每次将区间最左端的数字从堆中删掉,然后将下一个元素推进来即可需要解决的问题:1.首先是复杂度的问题,每次加入一个元素和删除一个元素,堆调整的代价是log(k)然后需要调整n次,复杂度大概是n*(logk+logk)n和代入最大2∗105∗log(105)≤4∗1062*10^{5}原创 2021-05-15 16:52:53 · 246 阅读 · 0 评论 -
二叉树层次遍历,使用nullptr分割层次
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0), left(nullptr), right(nullptr) {} * TreeNode(int x) : val(x), left(nullptr), right(nullptr) {} *原创 2021-04-09 14:38:50 · 151 阅读 · 0 评论 -
根据数据规模选择不同复杂度算法 & 组合数的复杂度分析 & 空间计算
按照一秒处理10810^{8}108数据规模计算复杂度数量级最大规模O(NlogN)>> 10^20很大O(N^1/2)10^1210^14O(N)10^610^7O(NlogN)10^510^6O(N^2)10002500O(N^3)100500O(N^4)5050O(2^N)2020O(N!)910re:https://blog.youkuaiyun.com/weixin_34268843原创 2021-03-31 17:35:44 · 1050 阅读 · 0 评论 -
TSP 问题的 LKH 方法介绍
算法设计中最有名的问题恐怕非TSP(旅行售货商问题)莫属了,又名为Hamilton环游问题。对此问题感兴趣的可以阅读下面的网站:http://www.seas.gwu.edu/~simhaweb/champalg/tsp/tsp.htmlhttp://www.akira.ruc.dk/~keld/research/LKH/个人认为,K. Helsgaun 的 LKH (Lin-Kernighan-Helsgaun)方法是目前求解 TSP 问题的最有效方法。令人敬佩的是,为了促进研究,K. Hels转载 2020-05-17 18:51:02 · 4121 阅读 · 0 评论 -
hust考研真题-计算一年的第n天是几月几号
https://www.nowcoder.com/practice/b1f7a77416194fd3abd63737cdfcf82b?tpId=69&tqId=29669&tPage=1&ru=/kaoyan/retest/11002&qru=/ta/hust-kaoyan/question-ranking格式化输出printf("%04d-%02d-%02d...原创 2019-08-06 00:25:30 · 327 阅读 · 0 评论 -
c++ string find 查找失败时 应该注意的地方
当字符串查找失败的时候#include <vector>#include <iostream>#include <string>#include <algorithm>#include <limits.h>using namespace std;int main() { string aa = "sssss";...原创 2019-04-04 21:23:15 · 3631 阅读 · 0 评论 -
阶乘求和 0!+1!+2!+3!+4!+5!+... O(n) 复杂度
n次循环以 n = 4 为例利用 n!+(n-1)! = (n + 1) x ( n - 1)! 4! + 3! + 2! + 1! + 0!= (4+1) x 3! + 2! + 1! + 0!= ( (4+1) x 3 + 1) x 2! + 1! + 0!= ( ( (4+1) x 3 + 1) x 2 + 1) x 1 + 0!= ( ( ( (4+1) x 3 + 1) ...原创 2019-03-30 21:28:19 · 7407 阅读 · 6 评论 -
欧拉计划 problem 349 兰顿蚂蚁 飞神的蚂蚁
https://pe-cn.github.io/349/百度百科先进行模拟 得到2000之后的一步对应多少黑#include &amp;amp;amp;amp;amp;lt;iostream&amp;amp;amp;amp;amp;gt;#include &amp;amp;amp;amp;amp;lt;stdio.h&amp;amp;amp;amp;amp;gt;using namespace std;int main()原创 2018-12-20 21:24:58 · 441 阅读 · 0 评论 -
CCF(python)需要注意的地方
转载https://blog.youkuaiyun.com/qq_35396598/article/details/81261754没给标准说明,于是自己就去试了试水。比如18年3月的题,第一题的输入,你可以用a=input().split(" ")来切割但是第二题,你会发现程序错误,最开始不知道哪错了,发邮件问工作人员结果他也不知道。。于是去网上找了找,发现只有a=input().spli...转载 2018-12-16 09:36:45 · 1208 阅读 · 1 评论 -
快速计算数a开b次平方根的值
就是sqrt(sqrt(sqrt(……)))一共b个sqrt吧。等价变换a12b=elog(12b) a^{\frac{1}{2^b}}=e^{log(\frac{1}{2^b})}a2b1=elog(2b1)e 取15位 双精度最大值2.718281828459045#include &lt;iostream&gt;#include &lt;stdio.h&gt;#inc...原创 2018-12-19 11:12:45 · 1015 阅读 · 0 评论 -
卡特兰数
https://baike.baidu.com/item/卡特兰数/6125746?fr=aladdinn个数的进出栈序列种类数C2nnn+1\frac{C_{2n}^{n}}{n+1}n+1C2nn#include &amp;amp;lt;iostream&amp;amp;gt;#include &amp;amp;lt;stdio.h&amp;amp;gt;#include &amp;amp;lt;cst原创 2018-12-31 10:10:06 · 314 阅读 · 0 评论 -
c++ 计算器(1)中缀转后缀 含有一种括号
优先级1:(2:+ -3:* /4:)中缀转后缀定义一个符号栈从左向右扫描输入的合法中缀表达式:数字:直接加到后缀里面左括号:压栈右括号:弹栈至第一个左括号,将弹出的运算符依次加到后缀上,右括号不入栈其他算符: ①栈空直接压栈 ②栈不空,当前算符的优先级大于栈顶元素优先级,压栈 当前算符的优先级小于等于栈顶元素优先级,弹栈至不满足该条件或者栈空,改算符入栈...原创 2019-02-18 10:09:12 · 488 阅读 · 0 评论 -
整形 swap(a,b)的三种形式
①引入第三个变量#include &lt;iostream&gt;#include &lt;stdio.h&gt;using namespace std;int main(){ int a = 4, b = 5; printf("a=%d b=%d\n", a, b); int temp = a; a = b; b = temp; pri...原创 2019-02-28 16:18:13 · 4051 阅读 · 0 评论 -
【算法设计与数据结构】为何程序员喜欢将INF设置为0x3f3f3f3f?
①图算法在算法竞赛中,我们常常需要用到一个“无穷大”的值,对于我来说,大多数时间我会根据具体问题取一个99999999之类的数(显得很不专业啊!)在网上看别人代码的时候,经常会看到他们把INF设为0x7fffffff,奇怪为什么设一个这么奇怪的十六进制数,一查才知道,因为这是32-bit int的最大值。如果这个无穷大只用于一般的比较(比如求最小值时min变量的初值),那么0x7ffffff...转载 2019-02-28 16:48:22 · 303 阅读 · 0 评论 -
EOJ Monthly 2019.3 (based on March Selection) C. 线段树 --剪枝
https://acm.ecnu.edu.cn/contest/151/problem/C/解析https://acm.ecnu.edu.cn/blog/entry/342/原创 2019-03-23 16:24:37 · 461 阅读 · 0 评论 -
快速求幂
参考博客https://blog.youkuaiyun.com/qq_39511059/article/details/79886712#include &amp;amp;lt;iostream&amp;amp;gt;#include &amp;amp;lt;stdio.h&amp;amp;gt;#include &amp;amp;lt;string&amp;amp;gt;using namespace std;转载 2018-07-06 17:55:21 · 43267 阅读 · 0 评论