2015-04-01 24 views
0
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 pairfull house

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

我需要找到这些对中的最大可能的对(其值和出现次数),其中包括7 j s。

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

那么我怎么可能找到那些对呢?任何意见或想法将非常感激!

+0

什么是'N'?你的数组代表什么?什么是行和什么是列? – RealSkeptic 2015-04-01 20:49:38

+0

'n' =玩家人数。因此这些行是玩家,列是卡片的数字。 – user3213110 2015-04-01 20:53:58

回答

1

解决您的问题,并找到2对或其他任何东西算简单的方法你arr[][]为一维:arr[13](我想这是卡,2 - ACE) 然后,你可以通过这个数组来检查你什么都想要像数双或全房子,要知道他们的数字

编辑: 现在我关注关于第一个维度是玩家,这样你就可以做同样的arr[players][13]

+0

所以你提出的是为卡片自己制作一个数组,对吧?但是,我会存储什么?我在哪里初始化它?我在第一个“for”循环中想,但这不会有问题吗? – user3213110 2015-04-01 20:57:52

+1

是的,每个单元格/索引计数器的数量为:cardVal - 2(arr [0] =卡片号码2的计数器,arr [1] =卡片号码3的计数器等等)它应该替换第二个循环 – 2015-04-01 21:03:03