Sự chỉ rõ
Thách thức này rất đơn giản để nêu rõ: đầu vào của bạn là một mảng không chứa các số nguyên không âm, và nhiệm vụ của bạn là phân vùng nó thành càng ít chuỗi càng tốt. Chính thức hơn, nếu mảng đầu vào là A
, thì đầu ra là một mảng các mảng B
sao cho:
- Mỗi mảng trong
B
một phân vùngA
thành các chuỗi khác nhau (không nhất thiết phải liền kề). Theo cách tự nhiên, điều này có nghĩa là một trongB
các mảng đơn có chứaA
, hoặc phần tử đầu tiênB
là một phần tiếp theoA
và phần còn lại tạo thành một phân vùngA
với phần tiếp theo được loại bỏ. - Mỗi mảng trong
B
(không nhất thiết phải nghiêm ngặt) tăng lên. - Số lượng các mảng trong
B
là tối thiểu.
Cả đầu vào và đầu ra đều có thể được lấy ở định dạng mảng gốc của ngôn ngữ của bạn. Lưu ý rằng có thể có một số đầu ra chính xác.
Thí dụ
Hãy xem xét các mảng đầu vào A = [1,2,1,2,5,4,7,1]
. Một đầu ra có thể là B = [[1],[1,2,4,7],[1,2,5]]
. Điều kiện phân vùng là rõ ràng từ sơ đồ này:
A 1 2 1 2 5 4 7 1
B[0] 1
B[1] 1 2 4 7
B[2] 1 2 5
Ngoài ra, mỗi mảng trong B
đang tăng lên. Cuối cùng, A
không thể chia thành hai phần tăng dần, vì vậy độ dài B
cũng là tối thiểu. Vì vậy, nó là một đầu ra hợp lệ.
Quy tắc và tính điểm
Bạn có thể viết một chức năng hoặc một chương trình đầy đủ. Số byte thấp nhất sẽ thắng và các sơ hở tiêu chuẩn không được phép. Không có thời gian ràng buộc, nhưng bạn nên sơ tán giải pháp của mình trên tất cả các trường hợp thử nghiệm trước khi gửi nó.
Các trường hợp thử nghiệm
Chỉ có một đầu ra có thể được hiển thị, nhưng có thể có một số tùy chọn hợp lệ. Cụ thể, thứ tự của các mảng trong kết quả không thành vấn đề (nhưng mỗi mảng riêng lẻ phải theo thứ tự tăng dần).
[0] -> [[0]]
[3,5,8] -> [[3,5,8]]
[2,2,2,2] -> [[2,2,2,2]]
[1154,1012,976,845] -> [[845],[976],[1012],[1154]]
[6,32,1,2,34,8] -> [[1,2,8],[6,32,34]]
[1,12,1,12,1,13] -> [[1,1,1,13],[12,12]]
[6,4,6,13,18,0,3] -> [[0,3],[4,6,13,18],[6]]
[1,2,3,2,3,4,7,1] -> [[1,1],[2,2,3,4,7],[3]]
[0,9,2,7,4,5,6,3,8] -> [[0,2,3,8],[4,5,6],[7],[9]]
[7,1,17,15,17,2,15,1,6] -> [[1,1,6],[2,15],[7,15,17],[17]]
[4,12,2,10,15,2,2,19,16,12] -> [[2,2,2,12],[4,10,15,16],[12,19]]
[10,13,9,2,11,1,10,17,19,1] -> [[1,1],[2,10,17,19],[9,11],[10,13]]
[3,7,3,8,14,16,19,15,16,2] -> [[2],[3,3,8,14,15,16],[7,16,19]]
[15,5,13,13,15,9,4,2,2,17] -> [[2,2,17],[4],[5,9],[13,13,15],[15]]
B
, hy vọng bây giờ chúng rõ ràng hơn.
[0,5,2,0] -> [[0,5],[0,2]]
(nghĩa là tái chế số 0 đầu tiên thay vì sử dụng từng giải pháp một lần). Đó có phải là cố ý?