《算法设计与分析基础》(Python语言描述) 课件 第3章基本算法设计方法(2).pptx

《算法设计与分析基础》(Python语言描述) 课件 第3章基本算法设计方法(2).pptx

  1. 1、本文档共40页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

3.1穷举法;3.4.1递归法概述;原问题可以转化为一个或多个子问题来求解,而这些子问题的求解方法与原问题完全相同,只是在数量规模上不同。

递归调用的次数必须是有限的。

必须有结束递归的条件来终止递归。;2.递归模型;3.提取求解问题的递归模型;4.递归算法框架;【例3-4】假设二叉树采用二叉链存储,设计一个算法判断两棵二叉树t1和t2是否相同,所谓相同是指它们的形态相同并且对应结点值相同。;解;1 defsame(r1,r2): #递归算法:判断r1和r2是否相同

2 ifr1==Noneandr2==None:

3 returnTrue

4 elifr1==Noneorr2==None:

5 returnFalse

6 ifr1.val!=r2.val:

7 returnFalse

8 leftans=same(r1.left,r2.left) #递归调用1

9 rightans=same(r1.right,r2.right) #递归调用2

10 returnleftansandrightans;3.4.2冒泡排序;;;;;;;给定正整数n(n≥1),给出求1~n的全排序的递归模型和递归算法。

例如,n=3时,全排列是{{1,2,3},{1,3,2},{3,1,2},{2,1,3},{2,3,1},{3,2,1}}。;;;;;3.4.4实战—字符串解码(LeetCode394★★);问题描述:给定一个经过编码的有效字符串s,设计一个算法返回s解码后的字符串。编码规则是用“k[encoded_string]”表示方括号内的encoded_string?(仅包含小写字母)正好重复k(k?保证为正整数)次。

例如,s=3[a]2[bc],答案为aaabcbc,若s=abc3[cd]xyz,答案为abccdcdcdxyz。

要求设计如下方法:

def?decodeString(self,s:str)-str;;;;;;;;;;;;;;;;;

文档评论(0)

lai + 关注
实名认证
内容提供者

精品资料

版权声明书
用户编号:7040145050000060

1亿VIP精品文档

相关文档