题目
代码
执行用时:40 ms, 在所有 Python3 提交中击败了29.39% 的用户
内存消耗:14.8 MB, 在所有 Python3 提交中击败了93.00% 的用户
通过测试用例:203 / 203
class Solution:
def isStraight(self, nums: List[int]) -> bool:
nums.sort()
zero=nums.count(0)
gap=0
ans=True
for i in range(1,len(nums)):
if nums[i-1]!=0:
if nums[i-1]==nums[i]:
ans=False
gap+=max(nums[i]-nums[i-1]-1,0)
return ans if gap<=zero else False
【方法2】字典 空间复杂度O(n)
执行用时:36 ms, 在所有 Python3 提交中击败了57.26% 的用户
内存消耗:14.8 MB, 在所有 Python3 提交中击败了89.23% 的用户
通过测试用例:203 / 203
class Solution:
def isStraight(self, nums: List[int]) -> bool:
cnt=dict()
max_num,min_num=0,14
for item in nums:
if item!=0 and item in cnt: return False
if item:
cnt[item]=1
max_num=max(max_num,item)
min_num=min(min_num,item)
return max_num-min_num<5