如何总结数组中的所有匹配元素?我目前正在尝试使用嵌套for循环,但如果一个数字出现超过2次,它将无法正确总结。我觉得这里缺少一些小东西。
public class Game {
ColoredDice dice[] = new ColoredDice[6];
private int diceValues[] = new int[6];
public Game() {
rollSixDice();
score();
}
public void rollSixDice(){
for(int i = 0;i < 6;i++){
dice[i] = new ColoredDice();
}
// getDiceValue returns the int value of the die
for(int i =0;i<dice.length;i++){
diceValues[i] = dice[i].getDiceValue();
}
}
public void score(){
for(int i=0;i<dice.length;i++){
for(int j = i+1 ;j < 6;j++){
if(dice[i].getDiceValue() == diceValues[j]){
score += dice[i].getDiceValue();
}
}
}
System.out.println(score);
}
}
public class DiceTester {
public static void main(String[] args) {
new Game();
}
}
要清楚了解发生了什么...... 这里的两个数组都是相同的,并且类型为int。 示例角色值:2,3,4,2,6,6。 评分:8
答案 0 :(得分:0)
你能试试吗,
for(int i=0;i < dice.length;i++){
for(int j =i+1;j < dice.length;j++){
if(dice[i].getDiceValue() == dice[j].getDiceValue()){
score += dice[i].getDiceValue();
}
}
}
答案 1 :(得分:0)
您可以使用哈希映射,其中键是您要组的组,值是sum。这会将空间复杂度增加到O(N)和时间复杂度O(N)。 或者你可以通过先排序然后连续求和相同的元素来做O(nlogn)