
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
有一组数据在数组当中存储,我们默认第一个数为有序的,然后从他后面的数开始,先用一个变量把数据值保存,把这个数值在数组中对应的位置空出来,我们需要拿着这个数值和他前面的值一次进行比较,比较会出现两种情况:一、比前面的值小,前面的值要往后挪动到空位,又有新的空位,更新一下空位以及继续要比较的前一个数;,借助前后指针,一开始前指针指向key,后指针指向key+1位置,后指针指到的如果是小于key的值,前

,这始末宽度差就是这条时空通道的真实宽度,而被private和protected所修饰的部分,就像是被访问空间的禁地般,当然,这个禁地的领域范围计算与空间通道计算方式一样,对于禁地来说,设置着作用域访问操作符 (::)这样的令牌,如果有这禁地的访问令牌也是一样可以拜访禁地的。上面提到过,用类类型实例化出的对象并不包含成员函数,成员函数是放在公共代码区的,等待着对象调用,为了方便区别是哪个对象的,就

这题步骤就是正常动态规划五步走,只是由于物品不是无限多个,选的那几种情况就推不了通式了,循环能做,优化用二进制优化。f[i][j]表示:在前 i 个物品中挑选,在不超过背包承重 j 的情况下,所获的最大价值。解题算法:空间优化的动态规划 or 二进制优化:多重背包 -> 01背包(空间优化)f[i][j]表示:在前 i 物品挑选,不超过当前已有资产M,所获的最大利润。这题的本质是股票问题,贪心用的

在这种有向图中,用顶点表示活动,用有向边<Vi, Vj>表示活动Vi必须先于活动Vj举办,这种有向图叫做顶点表示活动的网络,简称AOV网(拓扑排序的实现是借助于对列用bfs实现的,同时对于每个顶点都会记录此时有多少指向他的边,即记录该顶点的入度 in[N]。就类似于一门系统课,他课程的设计肯定是合理的,有简单到难,知识深度层层递进的,每一门课程都有优先级,学完他,在学她。2、拿出队首元素,删除连带

在有向图上做dp其实是有一个难点的,就是五板斧中的填表顺序,在有向图上做dp不像在二维数组那样格式固定化,但是之前学习的拓扑排序其实就是量身定制适配于图的路径dp的填表顺序,解释一下:当x从队列中拿出来,那么x的dp表的位置已经跟新完毕,那么,依靠x推演的dp表格子就可以跟着跟新了。经验总结:图上的动态规划的状态转移方程的跟新是分批次的,不像是以前动态规划章节一次性更新完一个空。OJ题归属:图论基

BF算法是暴力过 n - 1 轮、单趟全遍历边进行的松弛操作,他的最差情况就是至多会进行 n - 1 轮松弛操作,到第 n 轮肯定是松弛不了的,能松弛的就一定存在负环。状态转移方程:起点 ......................u——v此时我们来算cnt[v],它等于刚刚经过的一条边加上在这条边之前所经过的边个数,这个在cnt[u]里面存着,即cnt[v] = cnt[u] + 1。存在负环时

--真实的情况只需要执行 n - 1 次,最后没有出边的点实际不需要再执行单趟操作,但是,如果在跑算法的过程中,跟新累加结果,只单单执行 n - 1 次是不够的,所以,我们为了保险,均执行 n 次~创建 cnt 数组,给每个节点都配上一个“记边器”,标记从起点到该点的边数,每跟新一个节点,实时判断是大于 n - 1 条边存在负环,还是小于等于 n - 1 存在最短路,不存在负环。---bool 类

dp 表 f 数组本身是三维的,让桥梁 k 那一维作 z 轴,我们可以发现,k = 0 的那一层是初始化的时候,k = n 的那一层是最终结果的时候,当前层的结果是根据上一层的结果递推的,所以可以空间优化、删掉第一维,而且,根据 k 值的不同,每一层更新出来的结果根据状态表示含义都有着自己的意义,比如:k = 4 的时候,f[4][i][j] 表示的是:从起点 i 到 终点 j 只经过 编号为1

声明:以下图片均来自比特官网,个人观点,仅供参考哦。前言:先给大家来看个幽默的图片借此开启一篇文章的序言。很有意思吧,那让我们携手遨游吧~1.namespace的价值:在C/C++中,会有大量的变量、函数和类...,他们在全局域定义,很可能因为命名相同导致冲突,使用命名空间就是为了对标识符进行本地化,以解决命名冲突或是命名污染。2.namespace的定义。

声明:以下知识相关资料来自比特官网和小编手搓~7、对象拷贝时的编译器优化。3、static成员。








