【发布时间】:2017-08-09 07:48:59
【问题描述】:
我正在开发一个程序,我需要获取整数数组中元素的索引,以便索引右侧的所有元素都大于从0 到该索引位置的所有元素。
例如:
Case : 1 - 给定输入 - { 5, -2, 3, 8, 6 } 然后我需要索引位置为 2 (i.e array element with value 3) 因为索引 2 之后的所有元素都大于从索引 0 到索引 2 的所有元素,即 {5,- 2,3}
Case : 2 - 给定输入 - { -5, 3, -2, 8, 6 } 然后我需要索引位置为 2 (i.e array element with value -2) 因为索引 2 之后的所有元素都大于从索引 0 到索引 2 的所有元素,即 {-5, 3,-2}
这是我的 Java 程序:
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
public class ArrayProgram {
public static void main(String[] args) {
int[] array1 = { 5, -2, 3, 8, 6 };
int[] array2 = { -5, 3, -2, 8, 6 };
process(array1);
process(array2);
}
private static void process(int[] array) {
List<Integer> list = new ArrayList<Integer>();
int maxIndex = 0;
list.add(array[0]);
System.out.println(Arrays.toString(array));
for (int i = 1; i < array.length; i++) {
if (array[i] <= Collections.max(list)) {
list.add(array[i]);
maxIndex = i;
}
}
System.out.println("index = " + maxIndex + ", element = " + array[maxIndex]);
}
}
程序输出为:
[5, -2, 3, 8, 6]
index = 2, element = 3
[-5, 3, -2, 8, 6]
index = 0, element = -5
它适用于case 1,但不适用于case 2。你能帮我解决这个问题吗?有没有其他更好的方法来解决这个问题,
【问题讨论】:
-
这个算法不能正常工作。是你自己发明的还是来自其他网站?
-
@ByeBye 我刚刚拍摄了一个场景并尝试实现它,它仅适用于少数情况
-
因为你需要计算我建议在地图中使用的所有可能性,并在最后得到最小值
-
array2[0]中的值为 -5(负数)。在您的第二个示例中,值为 5(正)。所以你的程序似乎可以正常工作(因为索引 1 > 索引 0 的值) -
在情况 2 中,数组以 5 开头,而在代码中,array2 以 -5 开头