billy_don
Senior Member
dp đơn giản thì sẽ tạo mảng lưu optimal solution tại idx i trên arr có độ dài n. Rồi tại index i duyệt từ 0 đến i xem thằng nào lớn nhất rồi +1 là ra dp tại đó.Nghĩ mãi chẳng ra, đọc solution của mấy bác cũng chẳng hiểu nốt, cứu
dp = max(dp[0]...dp[i - 1]) + 1
Khổ nỗi O(n^2) lận nên bị dính TLE, thì có cách nào giảm complexity xuống không nhỉ?
Thay vì lưu mảng dp length n thì giờ giảm kích thước lại còn 26 thôi, mỗi element lưu giá trị dài nhất có thể và kết thúc bằng char đó. Trong mảng 26 đó chọn ra thằng thỏa mãn k và lớn nhất. + nó thêm 1 là cái cần tìm đó.