• 博客园logo
  • 会员
  • 周边
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
 






君凌烟阁

 
 

Powered by 博客园
博客园 | 首页 | 新随笔 | 联系 | 订阅 订阅 | 管理

随笔分类 -  算法

1 2 下一页

静下心来看书,看到的会更多。慢慢阅读,收获的会更多。 
leetcode 刷题整理
摘要:刷题时用到的技巧 1、使用memset进行初始化 memset(a,0,sizeof(a)); memset(a,-1,sizeof(a)); 2、合理使用sort函数,sort(a,a+n),sort(v.begin(),v.end()); 3、 取中值需要小心越界,int mid = l + ( 阅读全文
posted @ 2021-10-31 12:08 君凌烟阁 阅读(174) 评论(0) 推荐(0)
二叉树已知先序和中序或者后序和中序求构造数(这个算法特别神奇)
摘要:首先我先介绍一下关于BST树,BST树又称搜索二叉树,即任意节点的左节点肯定比该节点小,右节点比该节点大。所以当中序遍历的时候,你会惊奇的发现遍历的val竟然是从小到大排序的。 如图就是BST树,先序是5 3 2 1 4 8 7 6 9,中序是1 2 3 4 5 6 7 8 9。知道先序序列后,其实 阅读全文
posted @ 2019-02-19 19:02 君凌烟阁 阅读(2196) 评论(0) 推荐(1)
Prim算法以及Kruskal算法
摘要:Prim算法主要用于计算最小生成树。算法在选取最小路径的时候需要优化,算法思路:从某个顶点开始,假设v0,此时v0属于最小生成树结点中的一个元素,该集合假设V,剩下的点待选择的点为U,然后找寻V中的点与U中的点组成的路径最短,该点为vk。把V集合加入,U集合移除vk。然后重复以上步骤,知道U集合为空 阅读全文
posted @ 2019-02-13 21:38 君凌烟阁 阅读(501) 评论(0) 推荐(0)
PAT甲级考前整理(2019年3月备考)之三,持续更新中.....
摘要:PAT甲级考前整理一:https://www.cnblogs.com/jlyg/p/7525244.html,主要讲了131题的易错题及坑点 PAT甲级考前整理二:https://www.cnblogs.com/jlyg/p/10364696.html,主要讲了考前注意以及一些常用算法。 1132题 阅读全文
posted @ 2019-02-12 13:17 君凌烟阁 阅读(1167) 评论(0) 推荐(0)
PAT甲级考前整理(2019年3月备考)之二,持续更新中.....
摘要:PAT甲级考前整理之一网址:https://www.cnblogs.com/jlyg/p/7525244.html,主要总结了前面131题的类型以及易错题及坑点。 PAT甲级考前整理三网址:https://www.cnblogs.com/jlyg/p/10364727.html主要是讲132题开始的 阅读全文
posted @ 2019-02-12 13:05 君凌烟阁 阅读(2216) 评论(0) 推荐(0)
红黑树
摘要:红黑树是一个平衡的二叉树,但不是一个完美的平衡二叉树。虽然我们希望一个所有查找都能在~lgN次比较内结束,但是这样在动态插入中保持树的完美平衡代价太高,所以,我们稍微放松逛一下限制,希望找到一个能在对数时间内完成查找的数据结构。这个时候,红黑树站了出来。 红黑树的性质: 1、节点是红色或者黑色。 2 阅读全文
posted @ 2019-02-11 13:07 君凌烟阁 阅读(353) 评论(0) 推荐(0)
背包问题简单整理
摘要:hdu2546,01背包,需要有点变形,计算时需要把价格最大的菜先放一边,最后计算。 #include<iostream> #include<cstdio> #include<set> #include<map> #include<vector> #include<iterator> #includ 阅读全文
posted @ 2019-02-05 21:08 君凌烟阁 阅读(285) 评论(0) 推荐(0)
快速排序
摘要:快速排序就是选定一个参照物,然后比这个参照物小的放它左边,比它大的放右边,然后分别对左边和右边重复以上操作。 阅读全文
posted @ 2019-01-13 11:50 君凌烟阁 阅读(168) 评论(0) 推荐(0)
数独算法
摘要:其中m_stdSudoKu[9][9]是9*9的数组,用于保存完整的数独。这个函数由于一次可能无法得到数独,所以调用的时候需要循环调用,知道返回true。 该算法原理就是每次得到某个空格数字就要进行3重限制的校对,排除横,竖,3*3宫格已经出现过的数字。 阅读全文
posted @ 2018-01-03 16:01 君凌烟阁 阅读(422) 评论(0) 推荐(0)
数位DP
摘要:数位DP是用记忆化搜索做的。个人觉得比较难理解。很对函数中的参数比如前导零什么意思也没有说明,所以导致难以学习。 记忆化搜索dfs(int len,int pre,int limit); 第二个参数是前导,主要是为了筛选。比如不要1到100000中不要连续数字62,此时你要要记录前导为6,然后你在当 阅读全文
posted @ 2017-09-29 11:57 君凌烟阁 阅读(247) 评论(0) 推荐(0)
KMP模板
摘要:kmp算法的最难理解的是next数组的生成,next数组存储的是匹配子串数组前缀与后缀相同长度。该next数组长度为字符串+1,next[0] = -1。 例题: hdu2203 #include<iostream> #include<cstdio> #include<cstring> #inclu 阅读全文
posted @ 2017-09-19 10:57 君凌烟阁 阅读(279) 评论(0) 推荐(0)
PAT 甲级1135. Is It A Red-Black Tree (30)
摘要:链接:1135. Is It A Red-Black Tree (30) 红黑树的性质: (1) Every node is either red or black. (2) The root is black. (3) Every leaf (NULL) is black. (4) If a no 阅读全文
posted @ 2017-09-18 12:02 君凌烟阁 阅读(2936) 评论(18) 推荐(0)
PAT甲级考前整理(2019年3月备考)之一
摘要:转载请注明出处:https://www.cnblogs.com/jlyg/p/7525244.html 终于在考前,刷完PAT甲级131道题目,不容易!!!每天沉迷在刷题之中而不能超脱,也是一种境界。PAT甲级题目总的说卡题目的比较多,卡测试点的比较少,有些题目还会有题意混淆,这点就不吐槽了吧。静下 阅读全文
posted @ 2017-09-15 10:57 君凌烟阁 阅读(10495) 评论(1) 推荐(7)
AVL树模板
摘要:AVL树也是一种搜索二叉树(BST),即左孩纸比父节点小,右孩纸比父节点大。AVL树的插入就是通过遍历找到合适的位置插入,插入后可能会导致高度差大于1,所以需要通过旋转操作进行自平衡。AVL树的删除,找到删除节点,然后找到其子节点下最接近该节点val值的叶子节点,然后把该节点的val赋值为叶子节点的 阅读全文
posted @ 2017-09-14 16:42 君凌烟阁 阅读(1002) 评论(0) 推荐(0)
Hash二次探测
摘要:Hash的二次探测,当hash的长度为n;插入val,当Hash[val]不为0时,选择新地址newval = val +(-) 1*1,val+(-)2*2,val+(-)(n-1)*(n-1); 具体例题见:PAT1078 #include<iostream> #include<cstdio> 阅读全文
posted @ 2017-09-08 14:16 君凌烟阁 阅读(1272) 评论(0) 推荐(0)
BFS小结
摘要:其实bfs本身不难,甚至不需要去学习,只要知道它的特性就可以写出来了。往往,bfs都是用递归做的。递归比循环更容易timeout。所以这次遇到一题bfs,卡时间的就悲剧了。 PAT1076 #include<iostream> #include<cstdio> #include<cstdlib> # 阅读全文
posted @ 2017-09-07 14:58 君凌烟阁 阅读(156) 评论(0) 推荐(0)
STL之set篇
摘要:insert为插入。set_intersection求交集,set_union求并集,是属于algorithm里的函数。 例题有 PAT甲级1063 #include<iostream> #include<cstring> #include<cstdio> #include<set> #includ 阅读全文
posted @ 2017-09-04 15:20 君凌烟阁 阅读(201) 评论(0) 推荐(0)
完全二叉树-已知中序排序,输出广度排序
摘要:题目:PAT1064 #include<iostream> #include<cstring> #include<cstdio> #include<algorithm> using namespace std; int cmp(int a,int b) { return a < b; } int n 阅读全文
posted @ 2017-09-04 14:36 君凌烟阁 阅读(369) 评论(0) 推荐(0)
Floyd模板
摘要:比较简单的算法:但是当点太多需要剪枝,不然很耗时 hdu1869 #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; #define INF (1<<29) #d 阅读全文
posted @ 2017-08-23 11:55 君凌烟阁 阅读(157) 评论(0) 推荐(0)
Dijkstra模板
摘要:Dijkstra是求最短路径,从未选过点中找最短的一条路,然后更新其他点到起点的距离。例如选择的最短点为k,则dj[k]表示起点到k之间的距离,此时更新其他点到起点的距离,dj[j] = min(dj[j],dj[k]+dj[k][j]);dj[j]比较原来的长度与经过k掉再到j点的长度,取最小。 阅读全文
posted @ 2017-08-21 14:05 君凌烟阁 阅读(615) 评论(0) 推荐(0)
 

1 2 下一页