class Solution:
def isStraight(self, nums: List[int]) -> bool:
"""
1.对数组排序!!!
2.统计多少个大小王【遍历】
大小王个数jokerjoker对应的nums[joker]所在位置应该是最小牌的数字
3.数组的最后一个则是最大牌的数字 nums[4]
4.条件1: 确保最大牌-最小牌小于5 nums[4]-nums[joker]
5.条件2: 确保数组中除0外无重复,可以使用nums[i]==nums[i+1]
"""
# 一定要记住先排序
nums.sort()
joker = 0
for i in range(len(nums)-1):
if nums[i]==0:
# 计算大小王个数
joker += 1
elif nums[i] == nums[i+1]:
# 控制条件2 判重
return False
# 控制条件1
if nums[4]-nums[joker]<5:
return True
else:
return False
每日一道Leetcode - 剑指 Offer 61. 扑克牌中的顺子 【排序|最大牌-最小牌<5】
最新推荐文章于 2022-10-28 20:10:34 发布