欧美1区2区3区激情无套,两个女人互添下身视频在线观看,久久av无码精品人妻系列,久久精品噜噜噜成人,末发育娇小性色xxxx

撲克牌順子-不用排序,只需要boolean[5]很小的內(nèi)存空間,遍歷一次數(shù)組即可

撲克牌順子

http://www.fangfengwang8.cn/questionTerminal/762836f4d43d43ca9deb273b3de8e1f4

//解題思路
/*
array數(shù)組解釋:數(shù)組索引表示順子的第幾張牌,如array[1] = true表示順子的第二張牌找到了
遍歷所有數(shù)字:
1.數(shù)字為0則king++,如果king > 3直接返回true,因為有4或5個王一定能組成順子
2.數(shù)字不為0
    2.1先執(zhí)行array[number % 5] == true,判斷這張牌是否已經(jīng)找到了或兩張牌是否相差5
        2.1.1是則直接返回false,因為有重復的牌或者存在兩張相差5的牌都不可能組成順子
        2.1.2否則執(zhí)行array[number % 5] = true表示找到了順子的其中一張牌,缺牌數(shù)lack--
    2.2統(tǒng)計最大值max和最小值min,如果max - min > 4直接返回false,因為順子的第一張牌和最后一張牌一定不會大于4
3.如果王牌數(shù)king等于缺牌數(shù)lack則返回true,否則返回false
 */
public boolean IsContinuous(int [] numbers) {
    int king = 0;//記錄王牌的個數(shù)
    int lack = 5;//記錄缺少的牌數(shù)
    int min = 14;
    int max = 0;
    boolean[] array = new boolean[5];
    for (int number : numbers) {
        if (number == 0) {
            king++;
            if (king > 3) return true;//有4或5個王一定能組成順子
        }
        else {
            if (array[number % 5] == true) return false;//有重復的牌
            else{
                array[number % 5] = true;
                lack--;
            }
            if (number < min) min = number;
            else if (number > max) max = number;
            if (max - min > 4) return false;
        }
    }
    if (lack != king) return false;
    return true;
}
全部評論

相關推薦

點贊 評論 收藏
分享
評論
2
收藏
分享

創(chuàng)作者周榜

更多
??途W(wǎng)
??推髽I(yè)服務