Các bác cho em hỏi code như này có sai sót hay chưa tối ưu ở chỗ nào không?
Bài này em làm theo định nghĩa: " Phần tử yên ngựa là phần tử lớn nhất trên dòng và nhỏ nhất trên cột mà nó đi qua." Mà tìm hiểu trên mạng thì định nghĩa này bị ngược.
*Vậy đinh nghĩa chính xác về phần tử yên ngựa là ntn?
- Chỉ nói lớn nhất/ nhỏ nhất thì có tính trường hợp có phần tử bằng nó không?
Cảm ơn mn đã xem!!!
int KTPTYenNgua(int a[][MAX], int m, int n, int i, int j)
{
int flag = 1;
//Duyet dong
for (int cot = 0; cot < j; cot++)
if (a[i][cot] >= a[i][j])
{
flag = 0;
break;
}
for (int cot = j+1; cot < n; cot++)
if (a[i][cot] >= a[i][j])
{
flag = 0;
break;
}
//Duyet cot
for (int dong = 0; dong < i; dong++)
if (a[dong][j] <= a[i][j])
{
flag = 0;
break;
}
for (int dong = i + 1; dong < m; dong++)
if (a[dong][j] <= a[i][j])
{
flag = 0;
break;
}
return flag;
}
int DemPTYenNgua(int a[][MAX], int m, int n)
{
int dem = 0;
for (int i = 0; i < m; i++)
for (int j = 0; j < n; j++)
if (KTPTYenNgua(a, m, n, i, j) == 1)
{
dem++;
cout <<"a["<<i<<"]["<<j<<"]= "<< a[i][j] << "\t";
}
return dem;
}