61. 扑克牌顺子

题目链接

NowCoder

题目描述

五张牌,其中大小鬼为癞子,牌面为 0。判断这五张牌是否能组成顺子。

61. 扑克牌顺子 - 图1

解题思路

  1. public boolean isContinuous(int[] nums) {
  2. if (nums.length < 5)
  3. return false;
  4. Arrays.sort(nums);
  5. // 统计癞子数量
  6. int cnt = 0;
  7. for (int num : nums)
  8. if (num == 0)
  9. cnt++;
  10. // 使用癞子去补全不连续的顺子
  11. for (int i = cnt; i < nums.length - 1; i++) {
  12. if (nums[i + 1] == nums[i])
  13. return false;
  14. cnt -= nums[i + 1] - nums[i] - 1;
  15. }
  16. return cnt >= 0;
  17. }

61. 扑克牌顺子 - 图2