【发布时间】:2021-12-02 11:57:24
【问题描述】:
我正在做 leetcode 问题 #217:包含重复项。 检查答案后,我无法理解代码的某些部分。问题如下:
Given an integer array nums, return true if any value appears at least twice in the array, and return false if every element is distinct.
Example 1:
Input: nums = [1,2,3,1]
Output: true
Example 2:
Input: nums = [1,2,3,4]
Output: false
答案如下:
class Solution:
def containsDuplicate(self, nums: List[int]) -> bool:
nums.sort()
for i in range(0,len(nums)-1):
if nums[i] == nums[i+1]:
return True
return False
以下是我的问题:
在我的理解中,循环通过range(0,len(nums)-1) 可以让我们检查和比较num[0:-2] 中的字符,但是最后两个字符呢?
如果我们有nums 像[2,14,18,22,22],我们如何比较这两个字符。
而对于最后两行,为什么我们不能直接使用return False 而不是使用if...else... 结构呢?
这里的逻辑是怎么写的?
感谢任何可以澄清我的难题的人!
【问题讨论】:
-
仅供参考:彻底回答问题非常耗时。如果您的问题已解决,请通过接受最适合您的需求的解决方案表示感谢。✔ 位于答案左上角的 ▲/▼ 箭头下方。如果出现更好的解决方案,则可以接受新的解决方案。如果您的声望超过 15,您还可以使用 ▲/▼ 箭头对答案的有用性进行投票。 如果解决方案无法回答问题,请发表评论。 What should I do when someone answers my question?。谢谢。
标签: python arrays sorting hashtable