Tôi có vấn đề Java này, mà tôi nghi ngờ nó liên quan đến thuật toán cấp cao hơn, nhưng tìm kiếm của tôi không thể tìm ra bất kỳ thứ gì thực tế.Tính toán phần tử theo ma trận gia tăng, sử dụng hàng xóm
Bạn xây dựng một mảng như sau:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
Về cơ bản, A i, j = A i-1, j-1 + A i-1, j. Nó phải trả về phần tử tại chỉ mục (l, c): cho (4, 1) nó sẽ trả về 4, (5, 2) trả về 10, vv. Giải pháp của tôi rất đơn giản, nhưng không đủ:
static long get(int l, int c){
long[][] matrix = new long[l+1][l+1];
matrix[0][0]=1;
matrix[1][0]=1;
matrix[1][1]=1;
for(int i=2;i<=l;i++){
matrix[i][0]=1;
for(int j=1;j<=i;j++){
matrix[i][j] = matrix[i-1][j-1]+matrix[i-1][j];
}
}
return matrix[l][c];
}
Nó không hoạt động với các giá trị lớn của l và c. Sử dụng BigInteger không hoạt động. Tìm kiếm của tôi đã dẫn tôi đến vòng lặp và thu nhỏ, nhưng tôi không biết bắt đầu từ đâu. Bất kỳ chỉ đạo nào đúng hướng đều thực sự được đánh giá cao.
PS: Xin lỗi vì người mới, đây là câu hỏi đầu tiên của tôi!