老师您好,这个题可以给我点建议吗,
老师你好,我最近去参加了一个比赛,题目是这样的:
老师你好,思路我有了,但这题不加类就可以运行(图一),但我想把类加上(图二) 要怎么添加啊,我好像对类这个知识点还不够熟练...
13
收起
正在回答 回答被采纳积分+1
1回答
好帮手慕凡
2021-10-28 15:21:06
同学,你好!
1、同学可以参考以下代码:
#定义类 class Solution: #初始化函数 def __init__(self,nums:list,target:int): self.nums=nums self.target=target #定义函数 def twoSum(self): #定义num1用于排序 num1=1000 #定义list1用于保存下标 list1=[] for i in range(len(self.nums)): for j in range(i+1,len(self.nums)): #判断列表中两位数相加是否等于self.target和找出下标相加最小 if self.nums[i]+self.nums[j]==self.target and i+j<num1: #相加小于上个下标则对num1和list1重新赋值 num1=i+j list1=[i,j] #如果list1为空则返回"No such two numbers" if len(list1)==0: return "No such two numbers" return list1 Solu=Solution([2,5,0,4,8,3,4,2,6],8) print(Solu.twoSum())
2、同学注意任务要求中第三点:“如果存在两种或以上符合目标值target的情况,返回下标相加之和较小的数组”
3、类中如使用__init__函数,类对象实例化时会将参数传入__init__函数中,在__init__函数中用self.变量名将参数变为实例属性,类中的twoSum( )函数就可以直接使用self.变量名调用实例属性,同学复习一下课程,类的self:https://class.imooc.com/lesson/2094#mid=49698
祝学习愉快~
Python全能工程师
- 参与学习 人
- 提交作业 16247 份
- 解答问题 4470 个
全新版本覆盖5大热门就业方向:Web全栈、爬虫、数据分析、软件测试、人工智能,零基础进击Python全能型工程师,从大厂挑人到我挑大厂,诱人薪资在前方!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星