Đầu vào:
Một mảng 2D chứa hai giá trị riêng biệt (tùy chọn). Tôi sẽ sử dụng 0 và 1 khi giải thích các quy tắc. Các định dạng đầu vào là tất nhiên linh hoạt.
Thử thách:
Số không là nước, và những cái là đảo. Để đảm bảo sự cô đơn, nhiệm vụ của bạn là bao quanh tất cả các đảo bằng nước bằng cách chèn các hàng và cột số không. Bạn không muốn lãng phí nước, vì vậy bạn phải giảm thiểu lượng nước được thêm vào. Trong trường hợp có nhiều hơn một giải pháp yêu cầu cùng một lượng nước được thêm vào, thì bạn nên thêm các cột nước, không phải hàng. Tôi sẽ chỉ ra điều này trong các trường hợp thử nghiệm.
Đầu ra:
Mảng 2D mới, được sửa đổi. Các định dạng đầu ra là tất nhiên linh hoạt.
Các trường hợp thử nghiệm:
Đầu vào và đầu ra được phân tách bằng dấu gạch ngang. Các số không được thêm vào được hiển thị bằng phông chữ đậm. Sử dụng một trong những câu trả lời ở đây nếu bạn muốn chuyển đổi các trường hợp thử nghiệm sang các định dạng thuận tiện hơn.
1
---
1
1 1
---
1 0 1
1 1
1 1
---
1 0 1
0 0 0
1 0 1
1 0
0 1
---
1 0 0
0 0 1
Lưu ý rằng chúng tôi đã thêm một cột số không, không phải là một hàng số không. Điều này là do số lượng các số không cần thiết bằng nhau và các cột nên được ưu tiên.
1 0 0 0 1
0 1 0 1 0
0 0 1 0 0
0 1 0 1 0
---
1 0 0 0 1
0 0 0 0 0
0 1 0 1 0
0 0 0 0 0
0 0 1 0 0
0 0 0 0 0
0 1 0 1 0
Lưu ý rằng chúng tôi đã thêm các hàng, không phải các cột, vì điều đó đòi hỏi số lượng không nhiều nhất.
0 0 1 0 0
0 1 1 1 0
---
0 0 0 1 0 0 0
0 0 0 0 0 0 0
0 1 0 1 0 1 0
Điều này đòi hỏi cả cột và một hàng.
0 0 1 0 0
0 1 0 1 0
---
0 0 0 1 0 0 0
0 1 0 0 0 1 0
Tốt hơn để thêm hai cột hơn một hàng, vì nó cần ít nước hơn.
0 0
1 0
0 1
1 0
0 0
---
0 0
1 0
0 0
0 1
0 0
1 0
0 0
Tốt hơn để thêm hai hàng hơn một cột, vì nó cần ít nước hơn.