ustbfym 2020-01-03
package org.jimmy.autosearch.test; import java.util.ArrayList; import java.util.HashMap; public class Recursive2020010301 { public static void main(String[] args) { try { ArrayList<HashMap<String, Integer>> list = new ArrayList<HashMap<String, Integer>>(); HashMap<String, Integer> map = new HashMap<String, Integer>(); int maxNumber = 3; int numberCount = maxNumber - 1; int initialIndex = 1; int initialIndex2 = 0; map.put("maxNumber", maxNumber); map.put("numberCount", numberCount); map.put("initialIndex", initialIndex); map.put("initialIndex2", initialIndex2); list.add(map); map = new HashMap<String, Integer>(); maxNumber = 4; numberCount = maxNumber - 1; initialIndex = 1; initialIndex2 = 0; map.put("maxNumber", maxNumber); map.put("numberCount", numberCount); map.put("initialIndex", initialIndex); map.put("initialIndex2", initialIndex2); list.add(map); int currentIndex = 0; test5(list, currentIndex); } catch (Exception e) { } } public static void test5(ArrayList<HashMap<String, Integer>> list, int currentIndex) throws Exception { HashMap<String, Integer> map = list.get(currentIndex); Integer maxNumber = (Integer) map.get("maxNumber"); Integer numberCount = (Integer) map.get("numberCount"); Integer initialIndex = (Integer) map.get("initialIndex"); Integer initialIndex2 = (Integer) map.get("initialIndex2"); try { test4(maxNumber, numberCount, initialIndex, initialIndex2); } catch (Exception e) { System.out.println("---------------------------------"); currentIndex++; test5(list, currentIndex); } } public static void test4(int max, int count, int index, int index2) throws Exception { for(int i = index2; i < max; i++){ int tempIndex = index; int tempIndex2 = i; int j = i + tempIndex; if(index2 >= max - 1 && j >= max - 1){ throw new RuntimeException(); } System.out.println("i:" + i + ",j:" + j); if(j >= max - 1){ tempIndex = 0; tempIndex2++; } tempIndex++; if(i <= max - 1 && j <= max - 1){ test4(max, count, tempIndex, tempIndex2); } } } }
效果图: