- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
程序员编程艺术第二十八~二十九章最大连续乘积子串字符串编辑距离
程序员编程艺术第二十八~二十九章:最大连续乘积子串、字符串编辑距离 第二十八~二十九章:最大连续乘积子串、字符串编辑距离 前言 时间转瞬即逝,一转眼,又有4个多月没来更新blog了,过去4个月都在干啥呢?对的,今2013年元旦和朋友一起搭了个方便朋友们找工作的编程面试算法论坛:为学论坛。最近则在负责一款在线编程挑战平台--英雄会的产品运营,当然拉,虽说是产品运营,实际上身兼“数职”:出题审题,写代码测试一个不落下。 最近跟百度的几个朋友线下闲聊,听他们说,百度校招群内的不少朋友在找工作的时候都看过我的blog,一听当即便激起了自己重写更新此blog的欲望,恰巧眼下阳春三月(虽说已是3月,奇妙的是,前两天北京还下了一场大雪),又到了找工作的季节(相对于每年的9月份来说,3月则是一个小高潮),那就从继续更新专为找工作准备笔试面试的程序员编程艺术开始吧。 本文讲两个问题, 第二十八章、最大连续乘积子串, 第二十九章、字符串编辑距离, 这两个问题皆是各大IT公司最喜欢出的笔试面试题,比如说前者是小米2013年校招笔试原题,而后者则更是反复出现,如去年9月26日百度一二面试题,10月9日腾讯面试题第1小题,10月13日百度2013校招北京站笔试题第二 大道题第3小题,及去年10月15日2013年Google校招笔试最后一道大题。 OK,欢迎朋友们在本文下参与讨论,如果用Java/C#的朋友想在线编译自己的代码,可以上英雄会提交你的代码,有任何问题,欢迎随时不吝批评或指正,感谢。 第二十九章、最大连续乘积子串 题目描述:给一个浮点数序列,取最大乘积连续子串的值,例如 -2.5,4,0,3,0.5,8,-1,则取出的最大乘积连续子串为3,0.5,8。也就是说,上述数组中,3 0.5 8这3个数的乘积3*0.5*8=12是最大的,而且是连续的。 提醒:此最大乘积连续子串与最大乘积子序列不同,请勿混淆,前者子串要求连续,后者子序列不要求连续。也就是说:最长公共子串(Longest CommonSubstring)和最长公共子序列(LongestCommon Subsequence, LCS)的区别: 子串(Substring)是串的一个连续的部分, 子序列(Subsequence)则是从不改变序列的顺序,而从序列中去掉任意的元素而获得的新序列; 更简略地说,前者(子串)的字符的位置必须连续,后者(子序列LCS)则不必。比如字符串acdfg同akdfc的最长公共子串为df,而他们的最长公共子序列是adf。LCS可以使用动态规划法解决。 解答: 解法一、两个for循环直接轮询 或许,读者初看此题,自然会想到最大乘积子序列问题类似于最大子数组和问题:/v_JULY_v/article/details/6444021,最简单粗暴的方式便是用链两个for循环直接轮询。 for (int i=0;inum;i++) { double x=arrs[i]; for (int j = i+1; j num; j++) { x*=arrs[j]; if(xmax){ max=x; start=arrs[i]; end=arrs[j]; } } 解法二、虽说类似于最大子数组和问题,可以用两个for循环直接轮询搞定,但实际上具体处理起来诸多不同,为什么呢,因为乘积子序列中有正有负也还可能有0。我们可以把问题简化成这样:数组中找一个子序列,使得它的乘积最大;同时找一个子序列,使得它的乘积最小(负数的情况)。因为虽然我们只要一个最大积,但由于负数的存在,我们同时找这两个乘积做起来反而方便。也就是说,不但记录最大乘积,也要记录最小乘积。So,我们让 maxCurrent表示当前最大乘积的candidate, minCurrent反之,表示当前最小乘积的candidate(用candidate这个词是因为只是可能成为新一轮的最大/最小乘积), 而maxProduct则记录到目前为止所有最大乘积candidates的最大值。 由于空集的乘积定义为1,在有哪些信誉好的足球投注网站数组前,maxCurrent,minCurrent,maxProduct都赋为1。 假设在任何时刻你已经有了maxCurrent和minCurrent这两个最大/最小乘积的candidates,新读入数组的元素x(i)后,
您可能关注的文档
最近下载
- 药店医保人员管理制度范本(精选20篇).pdf VIP
- DB50T 1742-2024 家政服务 整理收纳服务规范.docx VIP
- 一种盐酸帕罗西汀片剂及其制备方法.pdf VIP
- 建筑学名词2014年版(建筑学名词审定委员会审定).pdf
- 北京市北京师范大学附属中学2024-2025学年八年级上学期期中考试物理试卷(word版,含答案).docx VIP
- 关注孕产妇心理健康.pptx VIP
- 天气闪卡_幼儿英语学习闪卡.pdf VIP
- 2021年国开电大《计算机绘图》(终结性考试)大作业(内附CAD打不开仅参考试题).pdf VIP
- 文法S→MH H→LSo εK→dML εL→eHfM→K bLM 求非.ppt VIP
- (新)(演练脚本)应急预案桌面推演方案(模板和现场案例).docx VIP
有哪些信誉好的足球投注网站
文档评论(0)