1. 程式人生 > 實用技巧 >【Java】把一個數拆分成兩個數,求這兩個數在一個不重複的陣列中的兩個下標集合

【Java】把一個數拆分成兩個數,求這兩個數在一個不重複的陣列中的兩個下標集合

題意:比如有一陣列[2, 4, 3, 1, 5],求5拆分成兩個數,這兩個數在陣列下標集合為0,2和1,3

程式碼

public static Map<Integer, Integer> getIndex(List<Integer> list, int a) {
    // 數拆分成兩個數在陣列中兩個下標的map
    Map<Integer, Integer> indexMap = new HashMap<>();
    if (null == list || list.size() <= 0 || a < 2) {
        
return indexMap; } // 陣列中的數與下標的map Map<Integer, Integer> numberIndexMap = new HashMap<>(); for (int index = 0, size = list.size(); index < size; index++) { numberIndexMap.put(list.get(index), index); } Integer integerX; Integer integerY; for (int i = 1, x = 1, y = a - 1; x < y; i++, x = i, y = a - i) { integerX
= numberIndexMap.get(x); integerY = numberIndexMap.get(y); if (null != integerX && null != integerY) { indexMap.put(integerX, integerY); } } return indexMap; }