风起鸿庄
2021-08-14 21:24
采纳率: 84.8%
浏览 57

请问这段python代码我应该怎么改?

img


class Solution:
    def findSmallest(nums):
        smallest=nums[0]
        smallest_index=0
        for i in range(1,len(nums)):#0已经设置完了
            if smallest>nums[i]:
                #它不需要储存中间值,因为python是重建一个列表,并把重建的列表元素储存在新列表中
                smallest=nums[i]
                #不过底部的索引必须记住
                smallest_index=i
    def containsDuplicate(self, nums: List[int]) -> bool:
        newNums=[]
        for i in range(len(nums)):
            smallest=findSmallest(nums)
            newNums.append(nums.pop(smallest))
        for i in range(len(newNums)):
            if newNums[i]==newNums[i+1]:
                return true
                break
        return false
    

我知道用python一行就可以解决,但我还是想用这种选择排序再比较相邻元素的方法,因为是我自己想出来的方法
报错信息如下:
NameError: name 'findsmallest' is not defined
smallest=findsmallest(nums)
Line 14 in containsDuplicate (Solution.py)
ret = Solution().containsDuplicate(param_1)
Line 43 in _driver (Solution.py)
_driver()
Line 54 in (Solution.py)

  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 邀请回答

2条回答 默认 最新

相关推荐 更多相似问题