在数组中找到多对(两对和/或满屋)

时间:2015-04-01 20:42:36

标签: java arrays numbers poker

int count = 1, maxCount = 0, elem = 0, maxElem = 0;

for (int i = 0; i < players; i++) {
    for (int j = 1; j < 7; j++) {
        if (arr[i][j] == arr[i][j - 1]) {
            count++;
            elem = arr[i][j - 1];
        } else {
            elem = 0;
            count = 1;
        }

        if (count >= maxCount) {
            maxCount = count;
            maxElem = elem;
        }
    }
}

不确定它是否100%正确但这就是我设法找到此数组中的max元素及其出现次数的方法。

但这仅适用于一个(最大一个)reoccuring元素。我需要做的是找到所有 reoccuring元素。为了尽可能准确,我需要找出这7个two pair中是否有full housej

如果有人不知道这些是什么意思,那么两对就是当两对两个相等的数字时。满屋是指有两对,其中一对由两个相等的数字组成,另一个由三个相等的数字组成。

我需要在7 j个中找到最大可能的对(包括它们的值和出现次数)。

我正在考虑使用某种数组来存储一对,如果我找到一个,但问题是我需要为每个i找到这样的对。并且for loop中的数组初始化似乎没有用完。

那我怎么可能找到那些对?任何建议或想法都会非常感激!

1 个答案:

答案 0 :(得分:1)

要解决您的问题并更轻松地找到2对或其他任何东西,请将arr[][]计入一个维度:arr[13](我猜它是卡片,2 - Ace) 然后你可以传递这个数组来检查你想要的数量对或全屋并知道他们的数字

编辑: 现在我注意到第一个维度是玩家,所以你可以用arr[players][13]

做同样的事情