zoukankan      html  css  js  c++  java
  • 面试题:扑克牌中的顺子

    题目描述:从扑克牌中随机抽 5 张牌,判断是不是顺子,即这 5 张牌是不是连续的。 2-10 为数字本身,A 为 1,J 为 11,Q 为 12,K 为 13,而大小王可以看成任意的 数字。

    思路:

    • 1、首先我们应该关注的是大小王等特殊字符,由于可以当成任意的数字,所有当成0处理。
    • 2、把数组排序,再统计数组中0的个数
    • 3、统计排序之后的数组中相邻数字之间的空缺总数。
    • 4、数组中的非0数字重复出现,则该数组是不连续的。
    • 5、如果空缺的总数小于或者等于0的个数,那么这个数组就是连续的,反之则不连续

    程序1:

    import java.util.*;
    public class Solution {
        public boolean isContinuous(int [] array) {
            int numOf0=0;
            int numOf1=0;
            int length=array.length;
            if(length==0){
                return false;
            }
            Arrays.sort(array);
            for(int i=0;i<length-1;i++){
                if(array[i]==0){
                    numOf0++;
                    continue;
                }
                if(array[i]==array[i+1])
                    return false;
                numOf1+=array[i+1]-array[i]-1;
            }
            if(numOf0<numOf1)
                return false;
            return true;  //如果前面的return执行 则这句不执行
          /*if(numOf0>=numOf1)
                return true;
            return false;*/
        }
    }
  • 相关阅读:
    sw
    ++1
    test
    为了
    发送邮件
    新建121212
    29012
    pthread_create/join函数
    recv函数学习
    socketpair用法学习
  • 原文地址:https://www.cnblogs.com/Aaron12/p/9516561.html
Copyright © 2011-2022 走看看