传送门
nowcoder
leetcode
题目描述
五张牌,其中大小王可以看作任意牌,牌面为 0。
现在有2副扑克牌,从扑克牌中随机五张扑克牌,判断是不是顺子。
C++ 代码 - nowcoder
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
|
class Solution { public: bool IsContinuous(vector<int>& nums) { int n = nums.size(); if (n < 5) return false;
int zeroCount = 0; sort(nums.begin(), nums.end()); for (int i = 0; i < n; i ++) { if (nums[i] == 0) zeroCount ++; }
for (int i = zeroCount; i < n - 1; i ++) { if (nums[i] == nums[i + 1]) return false; else { int distance = nums[i + 1] - nums[i] - 1; zeroCount -= distance; if (zeroCount < 0) return false; } }
return zeroCount >= 0; } };
|
C++ 代码 - leetcode
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
|
class Solution { public: bool checkDynasty(vector<int>& nums) { unordered_set<int> set; int maxValue = 0, minValue = 14; for(int num : nums) { if(num == 0) continue; if(set.find(num) != set.end()) return false;
set.insert(num); maxValue = max(maxValue, num); minValue = min(minValue, num); }
return maxValue - minValue < 5; } };
|