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,最大值2是82,这是索引2.所以我希望它打印索引为2而不是0。
我有什么办法吗?任何帮助表示赞赏!
答案 0 :(得分:2)
您可以使用lastIndexOf
方法获取该元素的最后一个索引,例如:
int index = triangle.get(i).lastIndexOf(max);
System.out.println("INDEX: "+index);
Here也是一个例子。