感觉自己太傻了,开始用递归做的,结果超时,然后开始改成DP。结果没时间了。最后我的DP代码如下,大神们看看有没有错,可惜没办法检测了。
	public static int dpSoution(int row,int col,int[][] array){
		int max=0;
		int[][] dp=new int[row][col];
		for(int i=0;i<row;i++){
			for(int j=0;j<col;j++){
				if(i==0&&j==0){
					dp[i][j]=array[0][0];
				}else if(i==0){
					dp[i][j]=dp[i][j-1]+array[i][j];					
				}else if(j==0){
					dp[i][j]=dp[i-1][j]+array[i][j];
				}else{
					int tmp=dp[i][j-1]>dp[i-1][j]?dp[i][j-1]:dp[i-1][j];
					dp[i][j]=tmp+array[i][j];
				}
				if(dp[i][j]<max)
					max=dp[i][j];
			}
		}
		int result=-max+1;
		return result;
	}