题目
代码
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