
算法
文章平均质量分 73
陆i越
深夜,望着满天繁星,好似一串01在闪耀。。。
展开
-
动态规划:矩阵连乘问题
动态规划解决矩阵连乘问题原创 2017-04-11 15:09:33 · 1193 阅读 · 0 评论 -
动态规划:01背包
问题描述01背包是一个可以用动态规划解决的经典问题:给定nn种物品和一背包。物品ii的重量是wiw_i ,其价值为viv_i,背包的容量为cc。问应如何选择装入背包中的物品,使得装入背包的物品的总价值最大? 在选择装入背包的物品时,对每种物品ii只有两种选择,即装入背包或不装入背包。不能将物品ii装入背包多次,也不能只装入部分的物品ii。因此,称为01背包问题。形式化描述给定c>0,wi>0,vi原创 2017-10-05 14:24:52 · 755 阅读 · 0 评论 -
排序算法总结:冒泡排序
基本思想冒泡排序是非常容易理解和实现,以从小到大排序举例: 设数组长度为N。 1. 比较相邻的前后二个数据,如果前面数据大于后面的数据,就将二个数据交换。 2. 这样对数组的第0个数据到N-1个数据进行一次遍历后,最大的一个数据就 “沉”到数组第N-1个位置。 3. N=N-1,如果N不为0就重复前面二步,否则排序完成。据此,可以容易的写出如下代码。void BubbleSort(int原创 2017-08-01 15:11:15 · 539 阅读 · 0 评论 -
字典序位置
问题描述现在有”abcdefghijkl”12个字符,将其所有的排列中按字典序排列,给出任意一种排列,说出这个排列在所有的排列中是第几小的?解决思路对于一个单词A1A2A3…An,对于A1,在字典[A1:An]中以A1开头的第一个单词的位置是cnt(A1)∗(n−1)!。其中cnt(A1)表示在A2到An中小于A1的个数。(单词位置从0开始)对于一个单词A_1A_2A_3 \dots A_n, 对于原创 2017-06-13 21:14:43 · 553 阅读 · 0 评论 -
动态规划:击鼓传花
问题描述学校联欢晚会的时候,为了使每一个同学都能参与进来,主持人常常会带着同学们玩击鼓传花的游戏。游戏规则是这样的:n个同学坐着围成一个圆圈,指定一个同学手里拿着一束花,主持人在旁边背对着大家开始击鼓,鼓声开始之后拿着花的同学开始传花,每个同学都可以把花传给自己左右的两个同学中的一个(左右任意),当主持人停止击鼓时,传花停止,此时,正拿着花没传出去的那个同学就要给大家表演一个节目。聪明的小赛提出一个原创 2017-04-25 19:19:03 · 1483 阅读 · 0 评论 -
动态规划:最长公共子序列
问题描述一个给定序列的子序列是在该序列中删去若干元素后得到的序列。确切地说,若给定序列X={x1,x2,⋯,xm}X = \{x_1, x_2, \cdots, x_m\} , 则另一序列Z={z1,z2,⋯,zk}Z = \{z_1, z_2, \cdots, z_k\}, 是X的子序列是指存在一个严格递增下标序列{i1,i2,⋯,ik}\{i_1, i_2, \cdots, i_k\},原创 2017-04-18 18:24:37 · 774 阅读 · 0 评论 -
动态规划:考试通过概率
问题描述小明同学要参加一场考试,考试一共有n道题目,小明必须做对至少60%的题目才能通过考试。考试结束后,小明估算出每题做对的概率,p1,p2,…,pn。你能帮他算出他通过考试的概率吗?输入输出要求输入: 输入第一行一个数n(1<=n<=100),表示题目的个数。第二行n个整数,p1,p2,…,pn。表示小明有pi%的概率做对第i题。(0<=pi<=100) 输出: 小明通过考试的概率,最后结原创 2017-04-08 16:08:52 · 2639 阅读 · 2 评论 -
动态规划:乘积最大
问题描述有一个整数n,将n分解成若干个不同自然数之和,问如何分解能使这些数的乘积最大,输出这个乘积m动态规划根据题意,对于一个整数n,必然存在一个整数x,使得从n中分解出整数x可以使其最后获得最大乘积,这要求对n-x的分解也是最优解。我们用dp[i][j]表示从整数i分解出整数j的这种情况下,能达到的最大乘积。那么dp[i][j]可以递归的定义为 dp[i][j]={1max(dp[i−j][k]原创 2017-04-12 18:31:46 · 4057 阅读 · 0 评论 -
合并排序算法
算法思想合并排序算法是用分治策略实现对n个元素进行排序的算法。其基本思想是:将待排序元素分成大小大致相同的两个子集合,分别对两个子集合进行排序,最终将排好序的子集合合并成所要求的排好序的集合。合并算法可递归描述如下:void MergeSort(int a[], int left, int right){ if (left < right) { //至少还有两个元素原创 2017-04-09 09:37:35 · 1505 阅读 · 0 评论 -
正则表达式匹配
问题描述请实现一个函数用来匹配包含&amp;quot;...&amp;quot; 和的&amp;quot;∗*∗&amp;quot; 的正则表达式。模式中的字符&amp;quot;...&amp;quot;表示任意一个字符,而 &amp;quot;∗*∗&amp;quot;表示它前面的字符可以出现任意次(含0次)。在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串&am原创 2018-12-03 14:43:53 · 298 阅读 · 0 评论