该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
public class Solution {
public int[] twoSum(int[] nums, int target) {
Object result[] = fullArray(nums, target);
int num[] = new int[result.length];
for (int i = 0; i < num.length; i++) {
num[i] = (Integer) result[i] + 1;
}
return num;
}
public static Object[] fullArray(int[] nums, Integer number) {
List> resultlist = new ArrayList>();
List numsList = new ArrayList();
for (int i : nums) {
numsList.add(i);
}
Collections.sort(numsList);
for (int i = 0; i < numsList.size(); i++) {
List list = new ArrayList();
list.add(i);
comm(numsList, i, number, numsList.get(i), list, resultlist);
for (List l : resultlist) {
getIndex(l, nums, numsList);
Collections.sort(l);
return l.toArray();
}
}
return new Object[] {};
}
public static void comm(List nums, int i, int number, int result,
List list, List> resultlist) {
for (int j = i + 1; j < nums.size(); j++) {
if (resultlist.size() != 0) {
break;
}
if (nums.get(j) + result == number) {
list.add(j);
resultlist.add(list);
break;
}
if (nums.get(j) + result > number) {
continue;
} else {
List l = new ArrayList();
l.addAll(list);
l.add(j);
comm(nums, j, number, nums.get(j) + result, l, resultlist);
}
}
}
public static void getIndex(List list, int nums[],
List numst) {
Map map = new HashMap();
for (int i = 0; i < list.size(); i++) {
in: for (int j = 0; j < nums.length; j++) {
if (numst.get(list.get(i)) == nums[j]) {
if (map.get(j) == null) {
list.set(i, j);
map.put(j, j);
break in;
} else {
continue;
}
}
}
}
}
}