python算法--扑克牌的顺子
程序员文章站
2022-03-11 22:58:49
题目:思路+代码:思路:首先可以知道,边界情况带有2个0时,max-min < 5; 所以只要这5个数除0之外不重复,且max-min <5,那么就一定是连续的;不需要具体的根据0的个数去判断;时间复杂度:O(n)空间复杂度:O(n); 一个数set()判重是O(1)class Solution: def isStraight(self, nums: List[int]) -> bool: # 思路: # 首先可以知道,边界情况带有...
题目:
思路+代码:
思路:
首先可以知道,边界情况带有2个0时,max-min < 5; 所以只要这5个数除0之外不重复,且max-min <5,那么就一定是连续的;不需要具体的根据0的个数去判断;
时间复杂度:O(n)
空间复杂度:O(n); 一个数set()判重是O(1)
class Solution:
def isStraight(self, nums: List[int]) -> bool:
# 思路:
# 首先可以知道,边界情况带有2个0时,max-min < 5; 所以只要这5个数除0之外不重复,且max-min <5,那么就一定是连续的;不需要具体的根据0的个数去判断;
repeat = set()
ma, mi = 0, 14
for num in nums:
if num == 0: continue
ma = max(num, ma)
mi = min(num, mi)
if num not in repeat:
repeat.add(num)
else:
return False
return ma - mi < 5
本文地址:https://blog.csdn.net/qq_36533552/article/details/107659273
上一篇: 开发一个提供给别人使用的SDK
下一篇: Python——切片编程