这是我想你会看在你的核心代码
public class Lottery{
public boolean isWinner(ArrayList<?> user, ArrayList<?> lotto){
if(user == null || lotto == null)
return false;
if(user.size() == 0 || lotto.size() == 0)
return false;
return lotto.containsAll(user);
}
}
这使用任何类型的ArrayList,并使用现有的containsAll()功能。
这将是很容易设置
Lottery lottery = new Lottery();
ArrayList<Integer> userOne = new ArrayList<Integer>();
ArrayList<Integer> lotto = new ArrayList<Integer>();
userOne.add(/*Some int value*/); //do this XX number of times as needed
lotto.add(/*Some int value*/); //do this XX number of times as needed
lottery.isWinner(userOne, lotto);
编辑这将在乐透= {3,3,3}用户= {1,3,8},但休息,如果你换的情况下工作数字:lotto = {1,3,8},user = {3,3,3}。如果你知道的大小将始终是相同的,你可以尝试
if(lotto.containsAll(user)){
return user.containsAll(lotto);
}
return false;
O(n)是大O表示法:http://en.wikipedia.org/wiki/Big_O_notation – Powerlord 2010-09-01 17:34:41
难道我们看到获胜的一些例子猜测,并失去猜测? – jjnguy 2010-09-01 17:43:28
是的,我有点难过,因为有很多潜在的奖金可以赚到。单个匹配是两个组之间匹配的任何一个数字;顺序无关紧要(例112,233;或187,843) twomatch是与2个号码匹配相同的想法;顺序无关紧要(例如234,364;或333,393),三匹配与3匹配数字(例如123,321;或979,799)相同 – 2010-09-01 18:04:27