![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
DY老王
这个作者很懒,什么都没留下…
展开
-
动态规划原理 -- 最优子结构&&子问题重叠
适合应用动态规划方法求解的最优化问题应该具备两个要素:最优子结构和子问题重叠1. 最优子结构判断依据 如果一个问题的最优解包含其子问题的最优解,此问题具有最优子结构性质。发掘最优子结构性质的通用模式证明问题最优解的第一个组成部分是做出一个选择,做出这次选择会产生一个或多个问题;对于一个给定的问题,在其可能的第一步选择中,假定知道哪种选择是最优的;给定可获得最优解的选择后,确定本次选择会产生的子问题,以及如何最好的刻画子问题空间。作为构成原问题最优解的组成部分,每个子问题的解就是它本身的最原创 2020-11-16 11:18:25 · 3079 阅读 · 0 评论 -
计数排序 -- GoLang实现
前提假设 假设 n 个输入元素中每一个都是在 0 到 k 区间内的一个整数,其中 k 为某个整数。基本思想 对每一个输入元素 x,确定小于 x 的元素个数。然后利用这个值,可以直接把 x 放到它在输出数组中的位置。例如 对数组 [ 2, 5, 3, 0, 2, 4, 0, 3 ] 进行计数排序,其中小于 4 的元素有 6 个,那么 4 应该放在第 7 个输出位置上。伪代码实现:说明:假设输入是一个数组 A[ 1 … n ], A.length = n。还需要另外两个数组 B[ 1…n原创 2020-11-07 14:32:34 · 525 阅读 · 0 评论 -
位运算表示集合运算
位向量一个很有用的应用就是表示有限集合。原理:位向量[ aw-1, ……, a1, a0 ] 编码任何子集 A ⊆ { 0, 1, ……, w - 1 },其中 ai = 1 当且仅当 i ∈ A。例子:集合A = {0, 3, 5, 6},那么可以用向量a = [ 01101001 ] 表示。原理通俗解释:集合中出现了数 0,就将向量最右边数起第 0 位置为 1,同理, 第 3 位置为 ...原创 2020-04-08 14:19:28 · 1637 阅读 · 0 评论 -
位运算的妙用
位级运算的一个常见用法是实现掩码运算。这里掩码运算是一个位模式,表示从一个字中选出的位的集合。让我们来看一个例子:掩码 0xFF(最低的 8 位为 1 )表示一个字的低位字节。位级运算 x & 0xFF 生成一个由 x 的最低有效字节组成的值,而其他的字节就被置为 0。比如,对于 x = 0x89ABCDEF,其表达式将得到 0x000000EF。表达式 ~0 将生成一个全 1 的掩...原创 2020-04-08 23:43:07 · 914 阅读 · 3 评论