Cho phép xác định quá trình nghiền một mảng số. Trong một lòng, chúng tôi đọc các mảng từ trái sang phải. Nếu tại một điểm chúng ta bắt gặp hai phần tử giống nhau trong một hàng, chúng ta sẽ loại bỏ phần tử thứ nhất và nhân đôi phần tử thứ hai. Ví dụ ở đây là quá trình nghiền mảng sau
[5,2,2,3]
^
[5,2,2,3]
^
[5,2,2,3]
^
[5,4,3]
^
[5,4,3]
^
Phần tử tương tự có thể được thu gọn nhiều lần, ví dụ [1,1,2]
trở thành [4]
khi bị nghiền nát.
Chúng tôi sẽ gọi một mảng không thể xóa được khi quá trình nghiền mảng đó không thay đổi. Ví dụ [1,2,3]
vẫn còn [1,2,3]
sau khi bị nghiền nát.
Nhiệm vụ của bạn là lấy một mảng và xác định số lần nghiền cần thiết để làm cho nó không thể xóa được. Bạn chỉ cần hỗ trợ số nguyên trong phạm vi từ 0 đến 2 32 -1
Đây là môn đánh gôn, vì vậy câu trả lời sẽ được tính bằng byte với ít byte hơn.
Các trường hợp thử nghiệm
[1] -> 0
[1,1] -> 1
[2,1,1] -> 2
[4,2,1,1] -> 3
[2,2,2,1,1] -> 3
[0,0,0,0] -> 1
[4,0,0,0,4] -> 1
[4,0,0,0,0,4] -> 1
[] -> 0
0,0,0,0
chỉ là 1
. Có thể là một ý tưởng để đề cập rõ ràng ở đâu đó rằng chúng ta đang đếm số lần chúng ta phải lặp qua một mảng để hoàn toàn nghiền nát nó và không , như tôi nghĩ ban đầu, tổng số lần chúng ta nghiền nát 2 số với nhau.
[1,1,2,4,8]
trả lại 1 hay 4?