
arrayAscending
Một dãy tăng là dãy mà phân tử sau lớn hơn phần tử trước. Hải có một dãy số nguyên a
và số nguyên dương k
.
Hải có quyền biến đổi dãy đó, môt lượt biến đổi Hải có quyền cộng vào bất kỳ phần tử nào thêm k
đơn vị. Hãy đưa ra số lần biến đổi ít nhất để dãy a trở thành dãy tăng.
Ví dụ:
- Với
a = [1,3,2,3]
vàk = 2
, thìarrayAscending(a,k) = 2.
Giải thích:2
phép biến đổi đó là:- Tăng
a[2]
lên2
đơn vị. - Tăng
a[3]
lên2
đơn vị.
- Tăng
- Với
a =[7,2,10]
vàk = 3
, thìarrayAscending(a,k) = 2.
Giải thích:2
phép biến đổi đó là:- Tăng
a[1]
lên3
đơn vị. - Tăng
a[1]
lên3
đơn vị.
- Tăng
Đầu vào/Đầu ra:
-
[Thời gian chạy] 0.5s với C++, 3s với Java và C#, 4s với Python, Go và JavaScript.
-
[Đầu vào] Arrays: Integer: a
1 ≤ s.size() ≤ 106.
1 ≤ a[i] ≤ 103.
[Đầu vào] Integer: k1 ≤ k ≤ 103.
-
[Đầu ra] Integer
Một số nguyên là số bước biến đổi ít nhất để biến đổi dãya
thành dãy tăng.
Tác giả: Phan Đức Hải
Fanpage: CodeLearn.io
Group: Codelearn – Tự học lập trình C#, C++, Java, Python,Basic algorithms.
Post Comment