Trong trò chơi sudoku, nhiều người chơi thích "bút chì" những con số có thể có trong mỗi ô vuông:
Hàng trên có thể được biểu diễn dưới dạng một mảng:
[[1,2,9], [6], [5], [7], [1,2,9], [1,2,9], [3], [1,2,4], [8]]
Bây giờ, lưu ý rằng chỉ có 1 nơi mà a 4
có thể đi. Điều này có hiệu quả cho phép chúng tôi đơn giản hóa danh sách trên để:
[[1,2,9], [6], [5], [7], [1,2,9], [1,2,9], [3], [4], [8]]
Mục tiêu của thử thách này là lấy một danh sách các số có thể có trong một hoán vị và suy ra những khả năng nào có thể được loại bỏ .
Một ví dụ khác, giả sử bạn có các khả năng sau:
[[0,1,3], [0,2,3], [1,2], [1,2]]
Hai vị trí cuối cùng phải được điền 1 và 2. Do đó, chúng ta có thể loại bỏ các khả năng đó khỏi hai phần tử đầu tiên trong mảng:
[[0,3], [0,3], [1,2], [1,2]]
Một ví dụ khác:
[[0,1,2,3], [0,2], [0,2], [0,2]]
Nó không thể để xây dựng một hoán vị từ các khả năng trên, như chỉ có 1 vị trí cho cả hai 1
và 3
, và bạn sẽ muốn quay trở lại một mảng trống.
Bạn cần nhập một danh sách các khả năng và đưa ra các khả năng còn lại sau khi số lượng khả năng tối đa đã bị loại bỏ.
- Nếu một mảng cụ thể là không thể, bạn cần phải trả về một mảng trống hoặc một mảng trong đó một trong các chuỗi con trống.
- Bạn có thể giả định rằng mảng sẽ được định dạng tốt và có ít nhất 1 phần tử.
- Đưa ra một mảng kích thước
N
, bạn có thể giả sử các số trong phân đoạn sẽ luôn nằm trong phạm vi[0:N)
và điều đóN <= 10
- Bạn không thể cho rằng mọi số từ
0
đếnN-1
sẽ có mặt - Bạn có thể cho rằng các số trong một phân đoạn đơn là duy nhất.
- Nếu một phân đoạn chỉ chứa một khả năng duy nhất, bạn có thể biểu diễn khả năng đó trong một mảng hoặc bằng chính nó.
[[1],[2],[0]]
,[1,2,0]
,[[1,2],0,[1,2]]
Tất cả đều hợp lệ. - Bạn có thể chấp nhận mảng ở định dạng chuỗi hợp lý hoặc ở định dạng danh sách / mảng.
- Các đoạn con có thể theo thứ tự bất kỳ.
- Thay vì xử lý các mảng rách rưới, bạn có thể đệm những chỗ trống
-1
.
Các trường hợp thử nghiệm
[[0]] -> [[0]]
[[1],[0]] -> [[1],[0]]
[[1],[1]] -> []
[[1],[0,1]] -> [[1],[0]]
[[0,1,2],[1,2],[1,2]] -> [[0],[1,2],[1,2]]
[[0,1],[1,2],[0,2]] -> [[0,1],[1,2],[0,2]]
[[2,1],[1,2],[1,2]] -> []
[[0,3],[2,1],[3,0],[3,2]] -> [[0,3],[1],[0,3],[2]]
[[0,1],[0,1],[2,3],[2,3,0]] -> [[0,1],[0,1],[2,3],[2,3]]
[[0,1],[0,3],[3,2],[0]] -> [[1],[3],[2],[0]]
[[3,5,2],[0,2,4],[4,0],[0,1,3,5],[2,1],[2,4]] -> [[3,5],[0,2,4],[4,0],[3,5],[1],[2,4]]
[[6,9,8,4],[4,5],[5,3,6],[3,8,6,1,4],[3,1,9,6],[3,7,0,2,4,5],[9,5,6,8],[6,5,8,1,3,7],[8],[8,0,6,2,5,6,3]] -> [[6,9,4],[4,5],[5,3,6],[3,6,1,4],[3,1,9,6],[0,2],[9,5,6],[7],[8],[0,2]]
[[3,5,0],[5,7],[5,1,2],[1,3,0],[5,3],[5,0],[5,3,7,8,0,6],[7,5,0,1,8],[1,0,8],[0,6]] -> []
[[9,0,2,3,7],[0,7,6,5],[6,9,4,7],[9,1,2,3,0,5],[2,8,5,7,4,6],[6,5,7,1],[5,9,4],[5,9,3,8,1],[5,0,6,4],[0,7,2,1,3,4,8]] -> [[9,0,2,3,7],[0,7,6,5],[6,9,4,7],[9,1,2,3,0,5],[2,8,5,7,4,6],[6,5,7,1],[5,9,4],[5,9,3,8,1],[5,0,6,4],[0,7,2,1,3,4,8]]
[[2,6,0],[0,4,3],[0,6,2],[0,7],[0,9,2,3,6,1,4],[1,7,2],[2,7,8],[8,6,7],[6,5,2,8,0],[5,8,1,4]] -> [[2,6,0],[3],[0,6,2],[0,7],[9],[1],[2,7,8],[8,6,7],[5],[4]]
[[8],[8,0,6,5,7,2,4,1],[8,6,9,3,5,0,7],[3,9,1,0],[9],[9,2,6],[2,8,3],[3,1,6,8,2],[6],[6,4,5,3,0,7]] -> [[8],[5,7,4],[5,7],[0],[9],[2],[3],[1],[6],[4,5,7]]
[[8,1,0],[5,8,7,6,2,0],[6,8,2],[2,4,0,9],[4,1,7,3,6,8],[8,1],[8,0,3],[0,8,2],[0,8,3],[1,8,0]] -> []
Đây là một môn đánh gôn, vì vậy hãy trả lời ngắn gọn nhất có thể!