Java:在阵列中查找多个对(两对和/或满屋)
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%正确,但这是我如何设法找到此数组中的最大元素以及它发生的次数。Java:在阵列中查找多个对(两对和/或满屋)
虽然这只适用于单个(最大)再分配元素。我需要做的是找到所有重新分配元素。为了尽可能精确,我需要找出在这7 j
之间是否有two pair
或full house
。
如果有人不知道这些是什么意思,那么两对是每对有两个相同的两个数字。满屋是有两对的时候,其中一个由两个相同的数字组成,另一个是三个相同的数字。
我需要找到这些对中的最大可能的对(其值和出现次数),其中包括7 j
s。
我正在考虑使用某种数组来存储一对,如果我找到一个,但问题是我需要为每个i
找到这样的对。并且初始化for loop
中的数组似乎没有解决问题。
那么我怎么可能找到那些对呢?任何意见或想法将非常感激!
解决您的问题,并找到2对或其他任何东西算简单的方法你arr[][]
为一维:arr[13]
(我想这是卡,2 - ACE) 然后,你可以通过这个数组来检查你什么都想要像数双或全房子,要知道他们的数字
编辑: 现在我关注关于第一个维度是玩家,这样你就可以做同样的arr[players][13]
所以你提出的是为卡片自己制作一个数组,对吧?但是,我会存储什么?我在哪里初始化它?我在第一个“for”循环中想,但这不会有问题吗? – user3213110 2015-04-01 20:57:52
是的,每个单元格/索引计数器的数量为:cardVal - 2(arr [0] =卡片号码2的计数器,arr [1] =卡片号码3的计数器等等)它应该替换第二个循环 – 2015-04-01 21:03:03
什么是'N'?你的数组代表什么?什么是行和什么是列? – RealSkeptic 2015-04-01 20:49:38
'n' =玩家人数。因此这些行是玩家,列是卡片的数字。 – user3213110 2015-04-01 20:53:58