Câu hỏi về phần tử cực đại trong ma trận

Em chào anh chị. Em đang làm bài tập về mảng 2 chiều . Nhưng gặp câu hỏi khó em có tìm và đọc lời giải trên internet nhưng vẫn khó hiểu . Anh chị có thể hướng dẫn em ý tưởng làm bài cho bài này duoc không ạ. Em code bằng C++

Đề bài:

Bạn đã biết cách nhập, xuất mảng chưa, hãy show lên đây

3 Likes

Chủ yếu là xác định tọa độ 8 ô lân cận thôi :smiley: với kiểm tra biên nữa.

4 Likes

Chỉ xét mấy phần tử trong viền thôi. Nếu mảng là nxm thì cho:

  • 1 <= i < n - 1
  • 1 <= j < m -1

Edit: Khoan. Hình như sai rồi : DD. Nếu vậy có thể phải nhét điều kiện cho i j để khỏi bị lỗi run- time và vẫn chạy hết ma trận: 0 <= i < n và 0 <= j < n. Bị lỗi là vì chẳng hạn khi j = n - 1 và bạn xét phần tử bên phải chẳng hạn - tức cùng i(chỉ số hàng) nhưng j(chỉ số cột) thì hơn 1 đơn vị - thì sẽ bị lỗi vì không tồn tại cột thứ n(ta đếm cột từ 0). Cần phải chèn If(j + 1 < n).

1 Like


Dạ đây phần nhập xuất ma trân của em

Đây nha cậu làm 1 ma trận con gồm 2 vòng for duyệt các phần tử xung quanh a[i][j] là được.

Nếu dong + i nằm ngoài khoảng 0..n-1 hoặc cot + j nằm ngoài khoảng 0..n-1 thì bạn không thể truy cập vào a[dong + i][cot + j] đâu.

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?