在网上找了好久关于动态规划的入门教程,总是觉得云里雾里看不太懂。
勉强一个可以理解的代码。
正序遍历,从第一位开始
1 static int cache[] = new int[100];; 2 static int num[] = {9,2,1,7,5,4,2,6}; 3 public static void main(String[] args) { 4 Arrays.fill(cache, -1); 5 for (int i = 0; i < A.size(); ++i) { 6 maxLen = Math.max(maxLen,lis(i)); 7 System.out.println(maxLen); 8 } 9 } 10 public static int lis(int start) {11 if (cache[start] != -1) {12 return cache[start];13 }14 cache[start] = 1;15 for (int next = start+1; next < A.size(); ++next) {16 if (num[start]