首页 > 编程语言 >每日算法题之扑克牌顺子

每日算法题之扑克牌顺子

时间:2022-11-12 09:56:27浏览次数:35  
标签:set min max 扑克牌 number 算法 顺子

JZ61 扑克牌顺子

描述

现在有2副扑克牌,从扑克牌中随机五张扑克牌,我们需要来判断一下是不是顺子。
有如下规则:
1. A为1,J为11,Q为12,K为13,A不能视为14
2. 大、小王为 0,0可以看作任意牌
3. 如果给出的五张牌能组成顺子(即这五张牌是连续的)就输出true,否则就输出false。
4.数据保证每组5个数字,每组最多含有4个零,数组的数取值为 [0, 13]

具体做法:

将 nums 数组依次装入 set集合,遇到 0 则返回装下一个元素,出现重复元素则返回 false,并在其中记录max,min,最终max-min >= 5的都不是顺子;

代码

package esay.JZ61扑克牌顺子;

import java.util.HashSet;

public class Solution {
    public boolean IsContinuous(int [] numbers) {
        HashSet<Integer> set = new HashSet<>();
        int min = Integer.MAX_VALUE;
        int max = Integer.MIN_VALUE;

        for (int number : numbers) {
            if (number == 0) continue;

            if (set.contains(number)) {
                return false;
            } else {
                set.add(number);
            }

            max = Math.max(max, number);
            min = Math.min(min, number);
        }

        return max - min < 5;
    }
}

标签:set,min,max,扑克牌,number,算法,顺子
From: https://www.cnblogs.com/loongnuts/p/16882743.html

相关文章

  • 回溯算法解数独问题
    好久没写算法了,浅解个数独本篇代码以伪代码为主,主要讲解解题思路规则介绍:首先数独的游戏规则,每个九宫格每一行每一列每个数字只能出现一次(1-9)开局时会生成一些不......
  • 基于prim算法的网络最小生成树生成得到路径规划
    目录一、理论基础二、核心程序三、测试结果一、理论基础普里姆算法(Prim算法),图论中的一种算法,可在加权连通图里搜索最小生成树。意即由此算法搜索到的边子集所构成的......
  • 道长的算法笔记:二分图匹配
    二分图的概念二分图又称作二部图,是图论中的一种特殊模型。假设\(G=(V,E)\)是一个无向图,如果顶点\(V\)能够分割为两个互不相交的子集\((S,T)\),并且图中的每条边\((......
  • 献芹奏曝-Python面试题-算法-DFS&BFS
    上一篇:献芹奏曝-Python面试题    开篇的话:本文目的是收集和归纳力扣上的算法题,希望用python语言,竭我所能做到思路最清奇、代码最简洁、方法最广泛、性能最高效,了解......
  • 算法笔记(三):数学问题
    最大公约数辗转相除法intgcd(inta,intb){ if(b==0)returna; returngcd(b,a%b);}最小公倍数根据最大公约数得出最小公倍数步骤:先求得a与b的最大公......
  • 算法笔记(二):知识点补充
    万能头文件#include<bits/stdc++.h>数组最大范围int型一维数组:小于4e8,即4亿int型二维数组:小于2e4,即2万数据类型范围int和long都是用32位来存储最大值和最小值分......
  • Floyd算法的关键点
    Floyd算法的代码很简单,就是三个for这个算法最重要的地方就是中转点的枚举for(intk=1;k<=n;k++)for(inti=1;i<=n;i++)for(intj=1;j<=n;j++)g[i][j]=max(g[i][j],g[i......
  • 旋转门数据压缩算法在PostgreSQL中的实现 - 流式压缩在物联网、监控、传感器等场景的
      背景在物联网、监控、传感器、金融等应用领域,数据在时间维度上流式的产生,而且数据量非常庞大。例如我们经常看到的性能监控视图,就是很多点在时间维度上描绘的曲线......
  • 回溯算法dfs: lc46全排列 lc47全排列ll
    result=[] defbacktrack(路径,选择列表):if满足结束条件:result.add(路径)returnfor选择in选择列表:做选择backtrack(路径,选择列表)撤销选择 46全......
  • 实验三:朴素贝叶斯算法实验
    【实验目的】理解朴素贝叶斯算法原理,掌握朴素贝叶斯算法框架。【实验内容】针对下表中的数据,编写python程序实现朴素贝叶斯算法(不使用sklearn包),对输入数据进行预测;熟悉s......