算法
快乐小多多
帅哥无需解释
展开
-
【算法设计与分析期末复习】动态规划,状态转移方程
给定字符串A, B, C,判断C是否由A和B交错构成。交错构成的意思是,对于字符串C,可以将其每个字符标记为A类或B类,使得A类的每个字符顺序构成了A字符串,B类的每个字符顺序构成了B字符串。例如:A=”rabbit” B=”mq”, ”rabmbitq”是由A和B交错构成的,但”rabbqbitm”不是由A和B交错构成。请设计动态规划算法求解,要求:1)描述状态表示和状态转移方程;2)并给出算法描述或者程序。答案:假设dp[i][j]表示A的前i个字符和B的前j个字符是否能够交错构成C的前i+j原创 2022-01-20 22:37:35 · 612 阅读 · 0 评论 -
【算法分析与设计期末复习】贪心算法交换论证
给定正整数数组A,请设计一个方法把这些整数拼接起来,使得拼接结果数最大。例如:A = [1, 32, 212],拼接结果为322121。1)设计一个贪心算法,输出拼接结果(字符串格式),并分析算法的复杂度;(15分)2)证明该算法的正确性。(10分)答案:1) 对于所有整数按照字典序降序排列,然后依次拼接整数,输出字符序列。复杂度为O(nlgn)参考程序如下:#include <iostream>#include <sstream>#include <vect原创 2022-01-20 22:35:37 · 926 阅读 · 0 评论 -
任务调度问题
题目描述一个单位时间任务是恰好需要一个单位时间完成的任务。给定一个单位时间任务的有限集S。关于S 的一个时间表用于描述S 中单位时间任务的执行次序。时间表中第1 个任务从时间0 开始执行直至时间1 结束,第2 个任务从时间1 开始执行至时间2 结束,…,第n个任务从时间n-1 开始执行直至时间n结束。具有截止时间和误时惩罚的单位时间任务时间表问题可描述如下:(1) n 个单位时间任务的集合S={1,2,…,n}(n≤500);(2) 任务i的截止时间d[i],1≤i≤n,1≤d[i]≤n,即要求任务i原创 2021-12-03 16:51:23 · 554 阅读 · 0 评论 -
多行最大子矩阵和问题
题目描述给定N×N矩阵,矩阵元素都是-127到+127之间的整数。请找到一个子矩阵,使得其元素之和最大。例如给定4*4矩阵 0 -2 -7 0 9 2 -6 2 -4 1 -4 1 -1 8 0 -2 最大子矩阵为 9 2 -4 1 -1 8 最大子矩阵和为9+2+(-4)+1+(-1)+8 = 15.输入数据多组测试数据,每组测试数据的第一行整数 N (N<=100)。接下来N行元素,每行N个元素,每个元素介于-127到127之间。输出数据最大子矩阵元素之和,每组测试数据对应一行。样例输原创 2021-11-12 17:22:04 · 415 阅读 · 0 评论 -
单行最大子矩阵和问题
题目描述给定1×N的单行矩阵,矩阵每个元素都是-127到+127之间的整数。请找到一个连续子矩阵,使得其元素之和最大。例如行矩阵0 -2 -7 0 -2 11 -4 13 -5 -2,最大子矩阵和为11+(-4)+13=20.输入数据多组测试数据,每组数据的第一行为一个整数 N (N<=100),第二行包含N个整数,为行矩阵的N个元素,每个元素介于-127到127之间。输出数据最大子矩阵之和,每组对应一行。样例输入100 -2 -7 0 -2 11 -4 13 -5 -2样例输出原创 2021-11-12 16:32:39 · 623 阅读 · 0 评论 -
我们有n根的木棍。现在从这些木棍中切割出来m条长度相同的木棍,问这m根木棍最长有多长?
题目描述我们有n根的木棍。现在从这些木棍中切割出来m条长度相同的木棍,问这m根木棍最长有多长?输入数据第一行输入两个数字,n(1<=n<=1000)为木棍数目,m(1<=m<=1000)为需要切割出的相同长度的木棍数目 随后n个正整数,表示原始木棍的长度(<=10000)输出数据每组输出一行结果,表示切割后绳子的最长长度(保留两位小数)样例输入4 5 5 6 7 8样例输出4.00#include<iostream>#include&l原创 2021-10-12 23:06:13 · 1287 阅读 · 0 评论 -
2021-09-27
1 算法复杂度算法运行所需要的计算机资源的量时间复杂度:需要时间资源的量空间复杂度:需要空间资源的量时间复杂度和空间复杂度只依赖算法求解的【问题规模】和【算法输入】的函数。N、l表示算法求解的问题规模和算法输入,则时间复杂度T=T(N,l)空间复杂度S=S(N,l)迷宫问题:在n*n的迷宫中,求解入口到出口的路径,如果不存在路径则返回0问题规模:n=2或者n=10000算法输入:输入1 没有路径,且入口即被障碍包围输入2 没有路径,但是在出口处才判定时间复杂度不应该是特定计原创 2021-09-27 18:04:24 · 62 阅读 · 0 评论 -
盛最多水的容器
给你 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0) 。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。输入:[1,8,6,2,5,4,8,3,7]输出:49方法:双指针在初始时,左右指针分别指向数组的左右两端,它们可以容纳的水量为 min(1, 7) * 8 =8min(1,7)∗8=8。我们应该移动对应数字较小的那个指针(即此时的左指针)。这是因为原创 2021-09-22 22:44:28 · 71 阅读 · 0 评论 -
算法6:两数之和
给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。输入:nums = [2,7,11,15], target = 9输出:[0,1]因为 nums[0] + nums[1] == 9 ,返回 [0, 1]#include <iostream>#include<vector&g原创 2021-09-22 18:20:46 · 68 阅读 · 0 评论 -
算法5:合并果子
题目描述 在一个果园里,多多已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆。多多决定把所有的果子合成一堆。 每一次合并,多多可以把两堆果子合并到一起,消耗的体力等于两堆果子的重量之和。可以看出,所有的果子经过n-1次合并之后,就只剩下一堆了。多多在合并果子时总共消耗的体力等于每次合并所耗体力之和。 因为还要花大力气把这些果子搬回家,所以多多在合并果子时要尽可能地节省体力。假定每个果子重量都为1,并且已知果子的种类数和每种果子的数目,你的任务是设计出合并的次序方案,使多多耗费的体力最原创 2021-09-20 16:07:18 · 178 阅读 · 2 评论 -
算法4:n根木棒组成周长最大的三角形
题目描述有n根小木棒,任选三根木棒组成一个三角形,问三角形周长最大是多少。(保证至少存在一种选法能组成三角形)输入数据第一行为一个正整数n,3=<n<=100 第二行为n个正整数,代表小木棒长度,不超过100.输出数据三角形周长的最大值样例输入51 2 3 4 5样例输出12#include <iostream>#include<vector>#include<algorithm>using namespace std;i原创 2021-09-20 14:56:06 · 461 阅读 · 0 评论 -
算法3:小飞侠的游园方案
题目描述 经过抽签选择,小智将军第一个进入考场。 菜虫:(身上散射出华贵(?)的光芒)欢迎你,第一位挑战者!! 小智:……(走到菜虫身后,关灯)女王陛下,虽然我们国家现在很富裕,但也请您不要浪费电来用这么大功率的灯泡。 菜虫(汗):啊啊爱卿所言甚是那么,你的题目是……我们的情报组织探听到敌人的重要将领——小飞侠星期天会邀他的灵儿妹妹到公园去玩。公园里有很多娱乐项目,可并不是每一项他们都喜欢,所以他们对每一项都进行了“喜欢度”的评分。因为小飞侠也是一个了不起的角色,所以他一定会选择在有限时间内原创 2021-09-20 14:53:39 · 133 阅读 · 0 评论 -
算法2:思维之花-方程
题目描述 有形如:ax3+bx2+cx+d=0 这样的一个一元三次方程。给出该方程中各项的系数(a,b,c,d 均为实数),并约定该方程存在三个不同实根(根的范围在-100至100之间),且根与根之差的绝对值> =1。要求由小到大依次在同一行输出这三个实根(根与根之间留有空格),并精确到小数点后2位。 提示:记方程f(x)=0,若存在2个数x1和x2,且x1< x2,f(x1)*(x2)< 0,则在(x1,x2)之间一定有一个根。输入数据输入该方程中各项的系数 (a,b,c,原创 2021-09-20 14:51:13 · 182 阅读 · 0 评论 -
算法1:编写代码解数字谜ABCAB*A=DDDDDD
将算式变形为除法:DDDDDD/A=ABCAB枚举范围:A 3-9, D 1-9(A不能取012,否则还是5位数)一共枚举63次原创 2021-09-18 17:39:49 · 5738 阅读 · 1 评论 -
学长含泪总结《算法分析与设计》笔记!点击开启算法之旅~
算法是软件的灵魂,是计算机科学各个研究领域的核心。掌握好算法的核心,助力面试的成功!原创 2021-09-06 23:39:45 · 249 阅读 · 0 评论