- 1、本文档共83页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
第2章工之利器—常用的数据结构及其应用;2/83;2.1线性表—数组;2.1.2Python列表;1)访问列表中的值
2)列表脚本操作符
3)列表的函数
4)列表的方法;;;;2.1.3列表元素排序;对于多关键字排序,key可以使用operator模块提供的itemgetter函数获取对象的哪些维的数据实现排序。;可以制定自定义的比较规则;2.1.4列表的拷贝;1 importcopy #导入copy模块
2 a=[1,[1,2,3],4]
3 b=copy.deepcopy(a)
4 print(a) #输出:[1,[1,2,3],4]
5 print(b) #输出:[1,[1,2,3],4]
6 b[0]=3
7 b[1][0]=3
8 print(a) #输出:[1,[1,2,3],4]
9 print(b) #输出:[3,[3,2,3],4];1 a=[1,[1,2,3],4]
2 b=a.copy()
3 print(a) #输出:[1,[1,2,3],4]
4 print(b) #输出:[1,[1,2,3],4]
5 b[0]=3
6 b[1][0]=3
7 print(a) #输出:[1,[3,2,3],4]
8 print(b) #输出:[3,[3,2,3],4];2.1.5实战—移除元素(LeetCode27★);解法1:整体建表法。用nums存放删除所有val元素的结果,先将结果数组nums看成是一个空表,用k表示结果数组的元素个数(初始为0),用i遍历nums,遇到保留元素(不等于val)时重新插入到结果数组nums中,遇到val元素时跳过。最后返回k。;1 class?Solution:
2 def?removeElement(self,nums:List[int],val:int)-int:
3????? n=len(nums)
4???????k,i=0,0??????????? #k记录结果数组中的元素个数
5?????? while?in:
6????????? if?nums[i]!=val:??? #nums[i]是保留的元素
7?????????? nums[k]=nums[i];?? #将nums[i]重新插入到结果数组中
8??????????? k+=1?? #结果数组的长度增1
9???????? i+=1
10????? return?k?????????? #返回保留的元素个数;解法2:移动法。同样用nums存放删除所有val元素的结果,先将结果数组看成是整个表,用k表示要删除的元素个数(初始为0),用i遍历nums:
①遇到保留元素(不等于val)时将nums[i]前移k个位置。
②遇到val元素时将k增1。
遍历完毕返回结果数组的长度n-k。;1 class?Solution:
2???? def?removeElement(self,nums:List[int],val:int)-int:
3???? n=len(nums)
4?????? k,i=0,0? #k记录结果数组中的元素个数
5?????? while?in:
6??????? if?nums[i]!=val:?? #nums[i]是保留的元素
7?????????? nums[i-k]=nums[i]? #将nums[i]前移k个位置
8???????? else:?? #nums[i]是要删除的元素
9???? k+=1??????? #k增1
10?????? i+=1
11???? return?n-k???????? #返回结果数组的长度n-k;解法3:区间划分法。用v[0..k](共k+1个元素)表示保留的元素区间(即不为val区间),初始时保留区间为空,所以置k=-1。
v[k+1..i-1](共i-k-1个元素)表示删除元素区间(即为val的区间),i从0开始遍历v,初始时删除区间也为空。;;1 class?Solution:
2???? def?removeElement(self,nums:List[int],val:int)-int:
3????? n=len(nums)
4???????k,i=-1,0???? #k记录结果数组中的元素个数
5?????? while?in:
6????????? if?nums[i]!=val:?? #nums[i]是保留的元素
7????????? k+=1????????
您可能关注的文档
- 《算法设计与分析基础》(Python语言描述) 课程教学大纲(含思政).docx
- 《算法设计与分析基础》(Python语言描述) 实验教学大纲.docx
- 《算法设计与分析基础》(Python语言描述) 课件 第1章 绪论.pptx
- 《算法设计与分析基础》(Python语言描述) 课件 第2章常用的数据结构及其应用(2).pptx
- 《算法设计与分析基础》(Python语言描述) 课件 第3章基本算法设计方法(1).pptx
- 《算法设计与分析基础》(Python语言描述) 课件 第3章基本算法设计方法(2).pptx
- 《算法设计与分析基础》(Python语言描述) 课件 第4章分治法(1).pptx
- 《算法设计与分析基础》(Python语言描述) 课件 第4章分治法(2).pptx
- 《算法设计与分析基础》(Python语言描述) 课件 第5章回溯法(1).pptx
- 《算法设计与分析基础》(Python语言描述) 课件 第5章回溯法(2).pptx
文档评论(0)