掌握了数据结构和算法才能够写出性能更优的代码。而看待问题的深度,解决问题的角度就会完全不一样。 数据结构 数组 链表 栈 队列 散列表 堆 二叉树 图 Trie树 跳表 一些常见算法 递归 排序 搜索 二分查找 哈希算法 贪心算法 分治算法 回溯算法 动态规划 字符串匹配算法 摆脱CRUD boy, ...
分类:
编程语言 时间:
2019-09-12 18:37:01
阅读次数:
106
一、分治策略 “分而治之”,大问题能够拆成相似的小问题,记住这些小问题需要具有相似性。而后将小问题的每个解合成为大问题的解。所以说大问题如何拆,小问题如何合并才是这个算法最主要的一个思想。实际上很多算法如贪心算法,动态规划等等都是要求把大问题拆成小问题。而分治算法的重要一点就是要适用于能够重新把小问 ...
分类:
编程语言 时间:
2019-08-27 23:22:51
阅读次数:
108
掌握20 个知识点就足够了。 这里面有 10 个数据结构:数组、链表、栈、队列、散列表、二叉树、堆、跳表、图、Trie 树;10 个算法:递归、排序、二分查找、搜索、哈希算法、贪心算法、分治算法、回溯算法、动态规划、字符串匹配算法。 ...
分类:
其他好文 时间:
2019-08-02 14:38:39
阅读次数:
74
Description 给定一棵N个节点的带权树,定义dist(u,v)为u,v两点间的最短路径长度,路径的长度义为路径上所有边的权和。再给定一个K,如果对于不同的两个结点a,b,如果满足dist(a,b) include include include include include define ...
分类:
其他好文 时间:
2019-07-27 09:58:02
阅读次数:
90
基本算法 位运算 枚举 贪心 递归 分治 递推 构造 模拟 数据结构 简单数据结构 树形结构 线段树 树状数组 字典树 伸展树 左偏树 动态树 lca&rmq 划分树 SBT 字符串 kmp AC自动机 后缀数组 最小表示法 其它 并查集 散列表 单调栈 块状链表 双向链表 离线分治算法 可持久化数 ...
分类:
其他好文 时间:
2019-07-27 09:39:46
阅读次数:
96
数据结构进阶 堆 倍增 并查集 树状数组/线段树 树上差分/树剖 点分治 分块/莫队/整体二分 CDQ分治/离线分治算法 主席树动态规划基础DP模型 : 线性DP 背包DP 区间DP 树型DP 状压DP 环形DPDP优化 : 倍增优化 单调队列优化 数据结构优化 斜率优化图论最短路 生成树 LCA ...
分类:
其他好文 时间:
2019-07-02 18:57:24
阅读次数:
93
一、基本概念 分治法,顾名思义,即分而治之的算法,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题…… 二、基本思想及策略 设计思想:将一个难以直接解决的大问题,分割成一些规模较小的相同问题,以便各个击破,分而治之。 策略:对于一个规模为n的问题,若该问题可以容易地 ...
分类:
编程语言 时间:
2019-06-23 20:52:30
阅读次数:
215
归并排序仍然是利用完全二叉树实现,它是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列。 基本过程:假设初始序列含有n个记录,则可以看成是n个有序的子序列,每个子序列的长度为1,然后两两归并 ...
分类:
编程语言 时间:
2019-04-25 14:29:57
阅读次数:
438
1. 五大算法 贪心算法: 局部最优解法 分治算法: 分成多个小模块,与原问题性质相同 动态规划: 每个状态都是过去历史的一个总结 回溯法: 发现原先选择不优时,退回重新选择 分支限界法 贪心算法: 局部最优解法 分治算法: 分成多个小模块,与原问题性质相同 动态规划: 每个状态都是过去历史的一个总 ...
分类:
编程语言 时间:
2019-04-09 16:50:54
阅读次数:
171