我正在研究一個程序,我需要在整數數組中獲取元素的索引,使得索引右側的所有元素都大於所有元素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
@ByeBye我只是採取了一種方案,並嘗試實施它,它只適用於少數情況 – user3181365
因爲你需要計算我建議在地圖上刻錄的所有可能性,並在'array2 [0]'值的末尾 – azro