Mô tả thử thách
Một chuỗi đơn điệu là một chuỗi các số [a1, a2, ..., an]
sao cho
a1 <= a2 <= ... <= an
hoặc a1 >= a2 >= ... >= an
. [1, 3, 3, 7, 9, 13, 13, 100]
là một chuỗi con đơn điệu (không giảm), cũng như [9, 4, 4, 3, 0, -10, -12]
(cái này không tăng), nhưng [1, 3, 6, 9, 8]
không. Đưa ra một danh sách các số nguyên (ở bất kỳ định dạng hợp lý nào), xuất ra số nhỏ nhất N
sao cho chuỗi các số nguyên này có thể được chia thành N
các chuỗi đơn điệu.
Ví dụ
[1, 3, 7, 5, 4, 2] -> [[1, 3, 7], [5, 4, 2]] -> 2
[1, 2, 3, 4, 5, 6] -> [1, 2, 3, 4, 5, 6] -> 1
[3, 1, 5, 5, 6] -> [[3, 1], [5, 5, 6]] -> 2
[4, 6, 8, 9, 1, 6] -> [[4, 6, 8, 9], [1, 6]] -> 2
[3, 3, 3, 3] -> [[3, 3, 3, 3]] -> 1
[7] -> [[7]] -> 1
[] -> [] -> anything (you don't actually have to handle an empty list case)
[1, 3, 2, -1, 6, 9, 10, 2, 1, -12] -> [[1, 3], [2, -1], [6, 9, 10], [2, 1, -12]] -> 4
[4,4,8,8,1,4,5] -> 2
0 / undefined
, nó có vẻ như là 0 hoặc đại diện undefined
trong ngôn ngữ của chúng tôi, nhưng từ nhận xét của bạn về câu trả lời Jelly của Jonathan Allan, có vẻ như đó undefined
là anything
... ? Trong trường hợp thứ hai, tôi sẽ đề nghị viết anything
thay vìundefined