最长公共子序列|最长公共子串|最长重复子串|最长不重复子串|最长回文子串|最长递增子序列|最大子数组和...

 

最长公共子序列|最长公共子串|最长重复子串|最长不重复子串|最长回文子串|最长递增子序列|最大子数组和

文章作者:Yx.Ac   文章来源:勇幸|Thinking (http://www.ahathinking.com)   转载请注明,谢谢合作。 

 

以后新博客写的文章挑一些粘过来,就当给新博客增加点入链吧,哈哈

本篇博文地址: http://www.ahathinking.com/archives/124.html

最近练手,整理了一个“最”系列的主题,这些题目有点绕,个别的还有别名(详见博文),混在一块比较乱,就索性放在一起做了个整理,区别的时候要注意子序列与子串的不同,前者不要求连续,后者要求连续;由于大部分跟DP有关,而且一些题目还可以渐进寻求多种解法,可以用来做不错的练手。

 下面是这些问题的博文目录

==========================

=1=最长公共子序列(LCS)==

=2=最长公共子串==

=3=最长重复子串==

=4=最长不重复子串==

=5=最长回文子串==

=6=最长递增子序列(LIS)==

=7=最大子数组和(连续子数组最大和)==

==========================

总结:

  1. 问题分类
  • 前两个是关于两个字符串的问题、中间三个是关于单个字符串的问题,最后两个是数组相关的问题;不过不一定绝对,例如最长公共子序列也可以是数组问题;
  • 从解决方案看,12属于“二维”DP问题,因为是两个对象间的问题;467属于“一维”DP问题,是单个对象的问题;345又是后缀数组的典型应用。
为练手,对大多数问题,尽量逐步探索,整理了多种思路,例如在最长不重复子串问题中,我逐步优化,尝试了四种实现方法,并成功得到了时间为O(N),辅助空间为常数的方案,回头反思,发现其优化的思维得益于对最大子数组和以及LIS的整理与思考。这些问题之间相互有很多相通的地方,例如,在最长不重复子串问题中,其DP思路与最长递增子序列有点类似,二者同属“一维”的问题,并且都需要记录当前元素“之前”的某些信息;而在DP优化过程中,最长不重复子串问题又与最大子数组和的优化同出一辙,这两个“一维”的DP问题都只使用O(1)的空间便可以记录子问题的最优解,这种“便捷”的方案并不是空穴来风,而是先通过“规规矩矩”的DP一步步探索,才发现这种“trick”的存在,很是有意思。

勘误:

  • 本系列文章所有代码出现 char xx  [256] 的地方改为 int xx [256] ,因为从逻辑上讲char xx[256] 是有可能出问题的。(感谢HFC)

本节相关代码可以到这里下载。

(全文完)

转载于:https://www.cnblogs.com/cherish_yimi/archive/2012/08/12/2635279.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/461794.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JEECMS编辑漏洞及随便拿webshell,啊哈哈

JEECMS是基于java技术开发,继承其强大、稳定、安全、高效、跨平台等多方面的优点 采用SpringMVC3Spring3Hibernate3Freemarker主流技术架构 安全性做得非常变态,当网站安装完成后就不再允许执行任何目录下的jsp文件了(web.xml配置了过滤器禁…

C++之内存管理

1.申请内存:int *p new int;释放内存:delete p; 2.申请块内存:int *arrnew int[10];释放:delete []arr; 3.申请内存需要判断是否成功,释放内存需要设空指针 4.new与delete配套使用 转载于:https://www.cnblogs.com/xjyxp/p/11236…

内核通识——linux内核源码(2.6.35.7版本)的目录结构

以下内容源于朱有鹏嵌入式课程的学习与整理,如有侵权请告知删除。 一、文件 (1)Kbuild文件 Kbuild是kernel build的缩写,就是内核编译的意思。这个文件就是linux内核特有的内核编译体系需要用到的文件。 (2&#xff09…

【原创】自制PCB经验教训之一:版图打印篇

看了篇帖子《用感光电路板自制PCB攻略(网友电子白菜撰写)》,于是前几天在淘宝上买了一批PCB DIY工具和材料回来,想自己弄个试试,岂料障碍重重,甚至于酿成大祸... 首先是PCB打印的软件设置问题,我…

分享一套非常不错的bootstarp3.0.2响应式模板

2019独角兽企业重金招聘Python工程师标准>>> 这是销量第一的bootstrap 响应式后台管理模板,每套模板都是我用20美金买回来的话不多说,下面是五个模板的演示地址,你看到的,就是你可以下载到的。都是收费模板。 官方演示…

内核配置与编译——内核的配置原理

以下内容源于朱有鹏嵌入式课程的学习与整理,如有侵权请告知删除。 概述 编译内核前需要进行两步配置,即先make x210ii_qt_defconfig,然后再make menuconfig。第一步如果成功,则会提示“configuration written to .config”。注意…

感谢大家对我微软TECHED2013课程的支持

http://technet.microsoft.com/zh-cn/teched2013_hols 转载于:https://blog.51cto.com/136840/1339733

C语言简介

摘自 老九学堂 徐嵩老师转载于:https://www.cnblogs.com/CheeseIce/p/11238694.html

内核源码——汇编阶段的head.S文件

以下内容源于朱有鹏嵌入式课程的学习,如有侵权,请告知删除。 前言 1、内容总结 汇编阶段,或者说内核引导阶段,主要是arch/arm/kernel/head.S文件,主要完成以下内容: (1)校验启动合法…

Python第十七课(面向对象基础)

Python第17课(面向对象基础) >>>思维导图>>>中二青年 面向对象编程思想OOP 什么是面向对象 面向对象是一种编程思想,是前辈们总结出的经验,指导程序员如何编写出更好的程序,核心是对象,程序就是一系列对象的…

内核源码——C语言阶段的start_kernel函数

以下内容源于朱有鹏嵌入式课程的学习,如有侵权请告知删除。 前言 1、内容总结 C语言阶段的start_kernel函数位于内核源码/init/main.c文件,主要完成以下内容: (1)打印一些输出信息。 (2)初始化…

Excel2007数据透视表学习(四)改变数据透视表布局

通过在【数据透视表字段列表】对话框内将【列标签】、【行标签】和【报表筛选】区域的字段转换即可创建不同分析角度的数据透视表。 如果还是习惯Excel2003版本字段拖拽方式创建数据透视表,可以在数据透视表中单击鼠标右键→【数据透视表选项】→【显示】→勾选【…

经典基础算法之面试题(系列一)(转)

1. 打靶问题的递归解法 Technorati 标记: 递归算法,字典法,二分法,打靶问题,日期问题,求幂,多项式求值伦敦奥运会火热进行中,让我们来看个打靶的问题:一个射击运动员打靶,靶一共有10环,求连开10枪打中90环的可能行有多少种&#x…

2013年11月份我国网络不良与垃圾短信息分析报告

IDC评述网(idcps.com)12月17日报道:近日,12321网络不良与垃圾信息举报受理中心最新播报了11月份我国不良与垃圾短信息发送情况。根据报告显示,11月份垃圾邮件发送IP地址与上月大体相同,主要集中在湖北、北京…

SCOM Rule 介绍 [SCOM中文系列之六]

SCOM的Rule主要用来收集数据,我们看到的EventView,PerformanceData,Report所需数据大部分都是通过Rule来收集的。 SCOM Rule的基础结构是触发指定的条件,就执行指定的动作。这个我们通过Rule的属性界面可以看的清楚点:…

init进程的详解

以下内容源于朱有鹏嵌入式课程的学习与整理,如有侵权请告知删除。 参考博客 内核源码——C语言阶段的start_kernel函数_天糊土的博客-CSDN博客 分析根文件系统中的/linuxrc文件_天糊土的博客-CSDN博客 linux内核sys_mount()分析_kai_ding的博客-CSDN博客_sys_mount…

跟着石头哥哥学cocos2d-x(四)--cocos2dx中的动画以及TexturePacker使用

2019独角兽企业重金招聘Python工程师标准>>> 之前向Andreas Loew申请了一枚TexturePacker注册码,很快都下来了,作为回报我打算还是写一篇关于TexturePacker的使用博客吧,有兴趣的可以在这里申请密钥,http://www.codeandweb.com&am…

头像和Karma汽车

Powered by Zoundry RavenTechnorati : Karma, 头像, 汽车 Del.icio.us : Karma, 头像, 汽车 转载于:https://www.cnblogs.com/bsmagic/archive/2008/08/06/1261858.html

All-In-One Code Framework [一站式示例代码库] 【转】

All-In-One Code Framework [一站式示例代码库]2010 对一站式示例代码库,对奋战在一站式示例代码库上的每一位工程师来说都是不同寻常的一年。 在我们共同努力和开发社区的支持下,该项目从一年前的草根雏形,成长为CodePlex排名前三&#xff0…

Ioc容器Autofac介绍

Autofac是轻量级的开源Ioc容器,在这里可以下载http://code.google.com/p/autofac/。如果你用过其他的Ioc容器,那么学习Autofac使用也会比较容易,下面将通过一些例子来讲解其用法。 先看一个例子: 首先新建一个工程,添加…