List<List<Integer>> triangle = new ArrayList<List<Integer>>();
triangle.add(Arrays.asList(75));
triangle.add(Arrays.asList(64, 94));
triangle.add(Arrays.asList(82, 47, 82));
int max = 0;
int x = 0;
int y = 0;
int sum = 75;
int j = 0;
for (int i = 1; i < triangle.size() - 1; i++) {
FOUND: {
for (j = j; j <= triangle.get(i).size(); j++) {
x = triangle.get(i).get(j);
y = triangle.get(i).get(j + 1);
max = Math.max(x, y);
int index = triangle.get(i).indexOf(max);
System.out.println("INDEX: "+index);
j = index;
sum += max;
break FOUND;
}
}
}
}
在比较时,让我们说47和82
x.add(Arrays.asList(82, 47, 82))
之间。这里47在索引1处,而82在索引2处,两个的最大值是82,在索引2处。所以我希望它将索引打印为2而不是0。有什么办法可以做到吗?任何帮助表示赞赏!
最佳答案
您可以使用lastIndexOf
方法获取该元素的最后一个索引,例如:
int index = triangle.get(i).lastIndexOf(max);
System.out.println("INDEX: "+index);
Here是相同的一个例子。
关于java - 如果存在重复元素,如何获取列表中元素的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42400841/