题目
代码

class Solution:
def isStraight(self, nums: List[int]) -> bool:
nums.sort()
ans=True
zero=nums.count(0)
gap=0
temp=[]
for i in range(len(nums)):
if nums[i]:
temp.append(nums[i])
pre=temp[0]
for i in range(1,len(temp)):
if temp[i]>pre:
if temp[i]>pre+1:
gap+=temp[i]-pre-1
pre=temp[i]
else:
ans=False
break
if ans:
if gap<=zero:
return True
else:
return False
return ans
【方法2-简化版本】

class Solution:
def isStraight(self, nums: List[int]) -> bool:
nums.sort(reverse=True)
gap=0
ans=True
for i in range(1,len(nums)):
if nums[i]==0 or (nums[i-1]-nums[i]==1):
pass
elif nums[i-1]>nums[i]:
gap+=nums[i-1]-nums[i]-1
else:
return False
if gap>nums.count(0):
ans=False
return ans

这篇博客介绍了两种Python代码实现,用于检查一个整数列表是否构成连续序列。第一种方法通过排序和遍历计算缺失值来判断,第二种方法则是从后向前比较元素间的差值。这两种方法都考虑了零值的存在,并在有缺失值超过零的个数时返回False。
875

被折叠的 条评论
为什么被折叠?



