算法轻松入门
文章平均质量分 83
帮助小白轻松掌握算法的解题思路,秒杀算法题
Junieson
不放弃任何细小的疑惑,让我们一起学习
展开
-
贪心算法(1):活动安排问题
题目设有n个活动的集合E={1,2,…,n},其中每个活动都要求使用同一资源,如演讲会场等,而在同一时间内只有一个活动能使用这一资源每个活动i都有一个要求使用该资源的起始时间si和一个结束时间fi,且si<fi。如果选择了活动i,则它在半开时间区间[si ,fi )内占用资源。若区间[si ,fi )与区间[sj,fj )不相交,则称活动i与活动j是相容的。当 si ≥ fj 或 sj ≥ fi...原创 2019-05-05 16:26:26 · 4092 阅读 · 0 评论 -
算法笔记:详细总结分治法,动态规划,贪心算法以及各算法典型例题
文章目录一,三种算法的基本思想分治法动态规划贪心算法二,三种算法的对比分治与动态规划。贪心与动态规划。三,三种算法的基本题型(不断更新中。。。)分治法动态规划贪心一,三种算法的基本思想分治法分治法的基本思想是将一个规模为n的问题分解为k个规模较小的问题,这些子问题互相独立且与原问题相同(所以可以递归,递归地解这些子问题,然后将各个子问题的解合并得到原问题的解。动态规划动态规划算法和分治法...原创 2019-05-05 15:12:48 · 1562 阅读 · 0 评论 -
动态规划(5):最长回文字串
题目给出一个字符串S, 求S 的最长回文子串(连续)的长度。样例输入:PATZJUJZTACCBCC输出:9题解最优子结构:如ATZJUJZTA是回文子串,那么它字串TZJUJZT一定是回文子串,且长度等于TZJUJZT的长度+2;重复子问题:如求ATZJUJZTA和TZJUJZT的长度,都会用到JUJ的长度状态转移公式:dp[i][j] 表示从字符A[i]到A[j]的回文串长度...原创 2019-05-04 16:44:30 · 434 阅读 · 0 评论 -
动态规划(4):最长公共子序列长度
题目给定两个字符串(或数字序列) A 和B, 求二个字符串,使得这个字符串是A 和B 的最长公共部分的长度(子序列可以不连续)样例输入sadstoryadminsorry输出6题解思路:如果两个串的最后结尾的字符相同,其最长公共子序列长度=分别去掉结尾字符剩下的部分的最长公共子序列长度+1;不相同,则转化为相同:在其中任意一个串上补与另一个串结尾字符相等的字符,然后转化成...原创 2019-05-04 13:36:38 · 1672 阅读 · 0 评论 -
动态规划(3):最长非递减子序列
题目在一个数字序列中,找到一个最长的子序列(可以不连续),使得这个子序列是不下降(非递减)的。样例输入81 2 3 -9 3 9 0 11输出6题解最优子结构(举例):以3结尾的最长非递减字串,它包含以2结尾的最长非递减字串重复子问题(举例):以9和以3结尾的最长非递减字串,都会会包含以2结尾的最长非递减字串;状态转换公式:初值 :dp[i]=1dp[i]=max(dp...原创 2019-05-03 21:22:27 · 4180 阅读 · 0 评论 -
动态规划(2):最大连续字串和
题目给定一个数字序列A1,A2,…, An’ 求i, j (1~ 医j~n), 使得Ai+···+Ai 最大,输出这个最大和。样例输入6-2 11 -4 13 -5 -2输出20题解最优子结构:以13结尾的最大连续字串和一定包括,以-4结尾的最大连续字串和 与 “13”这个串的最大连续字串和(就是13本身),这两个子问题的其中一个;重复子问题:求以13结尾的和以-5结尾的最大...原创 2019-05-03 17:25:48 · 1333 阅读 · 1 评论 -
动态规划(1):数塔问题
题目一些数字排成数塔的形状,其中第一层有一个数字,第二层有两个数字… 第n 层有n 个数字。现在要从第一层走到第n 层,每次只能走向下一层连接的两个数字中的一个,问:最后将路径上所有数字相加后得到的和最大是多少?样例558 312 7 164 10 11 69 5 3 9 4题解最优子结构:从5开始到结尾的最大和一定包含从8或者从3到结尾的最大和重叠子问题:求8到结尾的,和...原创 2019-05-03 16:21:05 · 2976 阅读 · 0 评论 -
详解编辑距离问题(动态规划)
问题描述:对于序列S和T, 它们之间的距离定义为: 对二者其一进行几次以下操作: 1, 删除一个字符; 2, 插入一个字符; 3, 改变一个字符. 每进行一次操作, 计数增加1. 将S和T变为相等序列的最小计数就是两者的编辑距离(edit distance)或者叫相似度. 请给出相应算法及其实现.分析:最优解的结构分析假设序列S和T的长度分别为m和n, 两者的编辑距离表示为edit[m][...原创 2019-04-09 22:00:03 · 1610 阅读 · 0 评论 -
详解拦截导弹问题(动态规划)
题目拦截导弹某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统。但是这种导弹,拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度。某天,雷达捕捉到敌国的导弹来袭。由于该系统还在试用阶段,所以只有一套系统,因此不可能拦截所有的导弹。输入----导弹依次飞来的高度,不大于 30000 的正整数389 207 155 300 299 170 158 ...原创 2019-04-07 18:50:08 · 19633 阅读 · 9 评论 -
详解动态规划石子合并问题(直线型, 环形)
题目描述在一个圆形操场的四周摆放N堆石子,现要将石子有次序地合并成一堆.规定每次只能选相邻的2堆合并成新的一堆,合并的花费为这相邻两堆之和试设计出1个算法,计算出将N堆石子合并成1堆的最小花费和最大花费.输入输出格式输入格式:数据的第1行试正整数N,1≤N≤100,表示有N堆石子.第2行有N个数,分别表示每堆石子的个数.输入示例44 4 5 9输出示例4354算法分析动态...原创 2019-04-05 10:39:34 · 6728 阅读 · 2 评论