自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

原创 算法复习之非确定性算法

确定性算法 之前我们学过的所有算法其实都有一个共同的特点【难(bushi)】,就是对于确定的输入,算法的核心计算过程以及输出和运行时间是不会变的。但是这就引发了一个问题,举个例子,如果对于一个本身就趋向递增的序列使用快速排序,就会触及算法的时间复杂度底线,甚至在海量的数据量时会直接崩溃,这样我们使用确定性算法去解决这种瞬息万变的问题就十分困难。非确定性算法 那有的小伙伴自然就会想到,如果面对这样的序列,我直接使用一个带有标记的冒泡排序或者选择排序就可以很快的执行完毕了...

2021-12-28 21:11:35 1649

原创 算法复习之分治与贪心(5)

写在前面 小伙伴们想问为什么跳过了4,因为要复习不完了!!!(留下了菜狗的泪水 |_|。。。。) 所以就先把接下来的重头戏——二分查找先整理一下,话不多说就开始吧。关于贪心算法 没啥想说的,因为学过数据结构、算法设计、blablabla等相关课程的小伙伴都听说过贪心,详细的一些事情由于本人很菜肯定没别人整理的好,所幸只挑选出二分查找来一起回顾一下贪心的魅力。问题:二分查找题目详情 给定一个有序数组,在其中查找满足条件的某个位...

2021-12-28 15:57:45 503 1

原创 算法复习之分治与贪心(3)

一维数值积分 给出一维函数,计算解决方法梯形近似法 我们想到的对于无闭式解的一维数值积分的求解方法,最常规的就是将区间切分为n段,将n段梯形的面积相加可以近似为函数在这一区间上的积分值 不过很显然,这种近似的求解方法只适用于一些平缓的函数,并且还跟区间切分的长度有着十分密切的相关性,并不能解决全部的一维数值积分问题,所以我们应该如何优化这一方法呢? 对于利用梯形面积近似积分的表达式,可以看到其实相当于是在两个点之间构建了一个...

2021-12-28 10:54:03 843

原创 算法复习之分治与贪心(2)

Strassen矩阵乘法问题描述 给出一个矩阵,求。核心思想

2021-12-28 02:08:00 429

原创 算法复习之分治与贪心(1)

经典算法回顾问题一:归并排序题目描述 给定一组数,将其从小到大排序,要求时间复杂度为。分析 比较朴素的归并排序算法,本质思想就是将数组不断折半,最后将数组全部拆分为长度为1或2的子数组,然后进行排序后再合并到一起解决方法void merge(vector<int>& data, int start, int end) { int mid = start + (end - start) / 2; vector<int&gt...

2021-12-27 22:32:06 623

原创 算法复习之动态规划(7)

问题:快乐聚会(树和图上的动态规划)题目描述 某公司中有明确的上下属关系,可以使用有根树表示。现举办聚会,每个人都有一个快乐指数,但是如果一个的上级参加了聚会,那么此人就不会再参加。求此次聚会最大的快乐指数和为多少?分析定义状态 其实经过题目的描述,状态已经呼之欲出了,正如大家所见,每个人都会存在一个快乐指数,如果他参加聚会,在此次聚会中他所贡献的快乐指数就为,反之则为0。故我们可以定义状态为,表示员工x参加或者不参加聚会时他与他下属产生的最大快乐指数和。...

2021-12-27 16:29:50 282 1

原创 算法复习之动态规划(6)

问题:区间最值查询题目描述 给出长度为n的数组和m次查询,要求每次询问求区间 [l, r] 内的最大(小)值、分析定义状态 重点利用了倍增思想建立状态(如果有时间,小编一定整理-_-),对于问题关注的重点-----区间进行建模,表示为以i为起点,长度为的区间内的最大(小)值状态转移 ...

2021-12-27 09:55:58 193

原创 算法复习之动态规划(5)

问题:编辑距离题目描述 给出字符串A和B,对A进行三种操作:插入、删除或替换一个字符,问由A修改为B最少要几步?分析定义状态 乍一看题目,感觉十分复杂,但是冷静分析一下,发现还是可以找到动态规划的影子。虽然字符串A与B之间长度不一定相同,并且可能存在着很多复杂的转化操作,但是还是可以按照对应位置进行状态的转移,如果现在考虑A的第i位字符在向B的第j位字符进行转化,可能会进行添加、删除、替换三种操作,所以我们可以将状态定义为:表示字符串A在第i位想要与字符串B在...

2021-12-26 20:23:16 434

原创 算法复习之动态规划(4)

问题:回文子序列个数题目描述 求字符串中回文子序列的个数。(如CDC的回文子序列包括C,D,C,CC,CDC,共5个,位置不同的相同序列需要重复计数)分析定义状态 思考的方式几乎与求解最长回文子序列相同,由于最后需要统计个数,所以我们需要将状态定义为:表示位置ii,j之间回文子序列的个数状态转移 我们同样需要考虑在位置i,j之间的回文子序列的个数是由哪几种情况转化过来的 (1)在位置i+1,j之间的回文子序列个数,添加了...

2021-12-26 19:43:58 319

原创 算法复习之动态规划(3)

问题:最长回文子序列题目描述 回文指形如:“ABBA”,“CDC”等正反一样的序列,给出任意序列,计算最长回文子序列长度。(如“GOODGAME”的答案为4)分析定义状态 根据求解最长递增子序列的经验,我们还需要将状态定义与长度相关,但是只引入一个参数无法很好的表示回文子序列的长度,所以需要将状态空间升维,即定义一个二维状态,用来表示第i位字符与第j位字符中间的所有子序列中最长回文子序列的长度。状态转移 对于任意两个位置i,j之间的最...

2021-12-26 17:24:17 170

原创 算法复习之动态规划(2)

问题:最长上升子序列题目描述 给定一个数组,请找出这个数组中的最长的单调递增子序列分析基本知识 一个字符串s称为字符串 S 的子串,表示 s 在 S 中出现过; 一个字符串 s 称为字符串 S 的子序列,表示从S通过去除某些元素但不破坏余下元素的相对位置(在前或在后)可得到s 。定义状态 由于一个数组中所包含的子序列数量十分庞大,故肯定不能将状态定义为任意一个子序列。而应该转换一下思考的方向,为以第i个数字为结...

2021-12-26 15:44:25 159

原创 算法复习之动态规划(1)

问题:爬楼梯题目描述一个有n级台阶的楼梯,每步可以迈1、2、3级台阶,问爬完这段楼梯有几种不同的方式分析定义状态 比较容易可以看出,状态应该定义为:为走到第i级台阶可以使用的方式数量状态转移 由于每一步可以走1、2、3级台阶,那么如果此时走到第i级台阶,前一步可能分为三种情况:(1)从第i-1级台阶迈1步到达 (2)从第i-2级台阶迈2步到达 (3)从第i-3级台阶迈3步到达 故状态转...

2021-12-26 14:07:03 104

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除