动态规划
.禾火
这个作者很懒,什么都没留下…
展开
-
寻找两个正序数组的中位数
给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数 。算法的时间复杂度应该为 O(log (m+n)) 。示例 1:输入:nums1 = [1,3], nums2 = [2]输出:2.00000解释:合并数组 = [1,2,3] ,中位数 2示例 2:输入:nums1 = [1,2], nums2 = [3,4]输出:2.50000解释:合并数组 = [1,2,3,4] ,中位数 (2 + 3) / 2..原创 2022-01-05 09:37:31 · 652 阅读 · 0 评论 -
最长回文子串
给你一个字符串 s,找到 s 中最长的回文子串。示例 1:输入:s = "babad"输出:"bab"解释:"aba" 同样是符合题意的答案。示例 2:输入:s = "cbbd"输出:"bb"经典动态规划,暴力dp。dp[i][j]=0表示s[i]到s[j]的字串不是回文字串,dp[i][j]=1表示s[i]到s[j]的字串是回文字串,所以可以得到状态转移方程dp[i][j]=dp[i+1][j-1]&&(s[i]==s[j])class Solution原创 2022-01-02 19:17:57 · 220 阅读 · 0 评论 -
矩阵取数游戏
小明经常玩一个矩阵取数游戏:对于一个给定的n x n的矩阵,矩阵中的每个元素aij表示该格子的价值,均为非负整数。游戏规则如下:小明从左上角走到右下角,只能向下向右走,经过某个格子,就能获得格子相应价值的奖励,请你帮忙写一个程序,对于任意矩阵,可以求出取数后的最大奖励值。输入格式:输入包括n+1行:第1行为一个整数n。(2 <= n <= 500)第2~n+1行为nxn矩阵,其中每行有n个用单个空格隔开的非负整数。(0 <= aij <= 10000)输出原创 2021-11-27 12:20:37 · 781 阅读 · 0 评论 -
石子合并问题(矩阵连乘)
有N堆石子排成一排(n<=100),现要将石子有次序地合并成一堆,规定每次只能选相邻的两堆合并成一堆,并将新的一堆的石子数,记为该次合并的得分,编一程序,给出堆数n及每堆石子数(<=200);(1)选择一种合并石子的方案,使得做n-1次合并,得分的总和最少(2)选择一种合并石子的方案,使得做n-1次合并,得分的总和最多输入格式:第一行为石子堆数n第二行为每堆石子数,每两个数之间用一空格分隔。输出格式:第一行为最小合并得分,第二行是最大的合并得分。输入样例:在这原创 2021-11-27 12:20:02 · 720 阅读 · 0 评论 -
让人头疼的“双十一”
双十一就这样轰轰烈烈的来了,网购宅男小明磨拳霍霍!理想是丰满的,现实是骨感的。小明虽然在购物车添加了不少物品,但是他低头看了下口袋却是叹声连连。小明想要购买的商品中,每件商品都有其价格和期待值,小明只能利用有限的资金,购买能让自己期待值总和达到最大的一系列物品了。输入格式:第一行一个整数T表示有T组测试数据(T<=50)。接下来的T组测试数据:第一行包含两个整数N和M,N表示小明有多少钱,M表示有多少件物品(1<=M<=100)。再二行包含M个整数,表示对应每个物品的价原创 2021-11-27 12:18:59 · 697 阅读 · 0 评论 -
分弹珠问题
把M个弹珠放到N个盘子里面(我们允许有的盘子为空),你能求出有多少种分法吗?(请注意,例如有三个盘子,我们将5,1,1和1,1,5,视为同一种分法)输入格式:输入包含多组测试样例。每组输入的第一行是一个整数t。 接下来t行,每行输入两个整数M和N,代表有M个弹珠和N个盘子。(0=<M<=20; 0<N<=20)输出格式:对于每对输入的M和N,输出有多少种方法。输入样例:在这里给出一组输入。例如:17 3结尾无空行输出样例:在这里给出相应的输原创 2021-11-27 12:18:23 · 474 阅读 · 0 评论 -
拦截导弹问题
某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统。但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度。某天,雷达捕捉到敌国的导弹来袭。由于该系统还在试用阶段,所以只有一套系统,因此有可能不能拦截所有的导弹。输入导弹依次飞来的高度(雷达给出的高度数据是不大于30000的正整数,导弹数不超过1000),计算这套系统最多能拦截多少导弹?扩展思考:如果要拦截所有导弹最少要配备多少套这种导弹拦截系统。输入格式:输入只有一行,为若干个正整数(原创 2021-11-27 12:17:04 · 472 阅读 · 0 评论 -
最大子矩阵和问题
最大子矩阵和问题。给定m行n列的整数矩阵A,求矩阵A的一个子矩阵,使其元素之和最大。输入格式:第一行输入矩阵行数m和列数n(1≤m≤100,1≤n≤100),再依次输入m×n个整数。输出格式:输出第一行为最大子矩阵各元素之和,第二行为子矩阵在整个矩阵中行序号范围与列序号范围。输入样例1:5 660 3 -65 -92 32 -70-41 14 -38 54 2 2969 88 54 -77 -46 -4997 -32 44 29 60 6449 -48 -96 59 -5原创 2021-11-08 11:22:40 · 1275 阅读 · 0 评论 -
最大子段和
给定n个整数(可能为负数)组成的序列a[1],a[2],a[3],…,a[n],求该序列如a[i]+a[i+1]+…+a[j]的子段和的最大值。当所给的整数均为负数时,定义子段和为0。要求算法的时间复杂度为O(n)。输入格式:输入有两行:第一行是n值(1<=n<=10000);第二行是n个整数。输出格式:输出最大子段和。输入样例:在这里给出一组输入。例如:6-2 11 -4 13 -5 -2结尾无空行输出样例:在这里给出相应的输出。例如:原创 2021-11-08 11:21:25 · 138 阅读 · 0 评论 -
单调递增最长子序列
设计一个O(n2)时间的算法,找出由n个数组成的序列的最长单调递增子序列。输入格式:输入有两行: 第一行:n,代表要输入的数列的个数 第二行:n个数,数字之间用空格格开输出格式:最长单调递增子序列的长度输入样例:在这里给出一组输入。例如:51 3 5 2 9结尾无空行输出样例:在这里给出相应的输出。例如:4结尾无空行#include<stdio.h>#include<stdlib.h>#include<string原创 2021-11-07 13:01:14 · 138 阅读 · 0 评论 -
新冠状病毒的基因序列
2019年12月下旬,武汉出现了多例不明原因的病毒性肺炎病例。之后,中国疾病预防控制中心确定此次致病的病原体为一种新的冠状病毒。1月12日,世界卫生组织将其命名为“2019新型冠状病毒(2019-nCoV)”。为了弄清新型冠状病毒的起源,中国疾控中心等机构的研究人员对住院患者的样本进行高通量测序,获得了完整和部分的2019-nCoV基因组序列。接着对这些2019-nCoV基因组和其他冠状病毒的基因组开展系统进化分析,以便确定这些病毒的进化史,帮助推断其可能的来源。上述的研究就属于计算机和生物医学的交原创 2021-11-07 12:58:23 · 4828 阅读 · 1 评论