您的位置:首页 > 其它

poj1050 二维数组最大子序列矩阵和

2012-10-28 21:53 344 查看
public class Main {

public int findMaxSumOneDimensions(int[] arr) {
int len = arr.length;
int max = arr[0], sum = max;
for (int i = 1; i < len; i++) {
sum += arr[i];
if (sum < 0)
sum = arr[i];
if (max <= sum)
max = sum;
}
return max;
}

public int findMaxSumTwoDimensions(int[][] arr, int N) {
int max = 0;
int[] b = new int
;
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++)
b[j] = 0;
for (int j = i; j < N; j++) {
for (int k = 0; k < N; k++)
b[k] += arr[j][k];
int temp = findMaxSumOneDimensions(b);
if (temp >= max)
max = temp;
}
}
return max;
}

public static void main(String[] args) throws FileNotFoundException {
// Scanner scanner = new Scanner(new BufferedInputStream(new
// FileInputStream(new File("E:\\input.txt"))));
Main main = new Main();
Scanner scanner = new Scanner(new BufferedInputStream(System.in));
int N = scanner.nextInt();
int[][] arr = new int

;
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) {
arr[i][j] = scanner.nextInt();
}
}
System.out.println(main.findMaxSumTwoDimensions(arr, N));
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: