用上面這六組數字, 求出 6 個數字

第一大組:
(1)03,06,07,08,09,10,12,14,19,20,24,25,28,30,32,33
(2)01,02,04,05,11,13,15,16,17,18,21,22,23,26,27,29,31
第二大組:
(3)01,03,04,07,08,09,11,12,15,19,20,21,22,24,26,28,29,30
(4)02,05,06,10,13,14,16,17,18,23,25,27,31,32,33
第三大組:
(5)01,03,04,05,06,07,08,09,11,12,17,18,22,23,25,27,28,30,31,33
(6)02,10,13,14,15,16,19,20,21,24,26,29
用上面這六組數字, 求出 6 個數字.使其滿足如下條件:
A: 6個數字中, 上面這六組數字,每組都包含有 3 個. 如果不能包含3個的,儘量使其包含2個

 

解決方案:

1.先合併這六組數據,進行排序暫時保存於新數組temp[]中

2.循環去出temp[]中的數據去和上面6組中的數據匹配,記錄匹配的組號於Map<int,List<int>>中

3.遍歷Map,任意找出6個數字,查看其List,如果它們相對應的組號最少出現兩次,OK,成功,否則,繼續尋找,知道匹配成功。

4. 6個數據的選擇方案:可以按順序先選擇6個匹配,不行則先去尾,向後查找直到結束。沒有匹配則再去頭,向後查找直到結束。

 

注:

結果一:1,2,3,4,5,10

這只是我想到的一種方案,如果大家還有好多想法希望不吝回覆!呵呵

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章