Longest Plindrome Subarray

public static int LPS(int[] a) {
		int[][] dp = new int[a.length][a.length];
		for (int i = 0; i < dp.length; i++) {
			dp[i][i] = 1;
		}
		for (int i = dp.length - 2; i >= 0; i--) {
			for (int j = i + 1; j < dp.length; j++) {
				if (a[i] == a[j]) {
					dp[i][j] = dp[i + 1][j - 1] + 2;
				} else {
					dp[i][j] = Math.max(dp[i + 1][j], dp[i][j - 1]);
				}
			}
		}
		return dp[0][dp.length - 1];
	}
	
	public static void main(String[] args) {
		int[] a = {4, 4, 1, 2, 4, 4};
		System.out.print(LPS(a));
	}
	

  

原文地址:https://www.cnblogs.com/apanda009/p/7963166.html