Tất cả thử thách
Dễ 0 đã giải Tỷ lệ chấp nhận 0%

Biến Mảng Thành Không Giảm

Tìm số lần tăng tối thiểu để mỗi giá trị không nhỏ hơn giá trị liền trước.

Mỗi lần di chuyển, bạn có thể tăng một giá trị trong mảng lên 1. Hãy biến mảng thành không giảm: mỗi giá trị phải lớn hơn hoặc bằng giá trị ngay trước nó. Bạn không được giảm giá trị hoặc thay đổi thứ tự các phần tử.

Cài đặt hàm increasing_array(numbers).

Đầu vào

numbers: Các giá trị theo thứ tự ban đầu.

Đầu ra

Trả về tổng số lần tăng đơn vị tối thiểu.

Ràng buộc

1 ≤ độ dài ≤ 200.000. Mỗi giá trị nằm trong khoảng từ 1 đến 1.000.000.000. Sử dụng kết quả kiểu số nguyên có dấu 64-bit.

Ví dụ

Ví dụ 1
Đầu vào:
numbers = [4, 1, 3]

Kết quả mong đợi:
expected = 4
Đầu vào:
std::vector<long long> numbers = {4, 1, 3};

Kết quả mong đợi:
long long expected = 4;
Đầu vào:
long[] numbers = new long[] {4, 1, 3};

Kết quả mong đợi:
long expected = 4;

Giải thích

Tăng 1 lên 4 bằng ba lần và tăng 3 lên 4 bằng một lần. Kết quả [4, 4, 4] sử dụng bốn lần tăng.

Ví dụ 2
Đầu vào:
numbers = [1, 2, 2, 5]

Kết quả mong đợi:
expected = 0
Đầu vào:
std::vector<long long> numbers = {1, 2, 2, 5};

Kết quả mong đợi:
long long expected = 0;
Đầu vào:
long[] numbers = new long[] {1, 2, 2, 5};

Kết quả mong đợi:
long expected = 0;

Giải thích

Mỗi giá trị đã không nhỏ hơn giá trị liền trước; các giá trị liền kề bằng nhau là hợp lệ.

Tham khảo

Thử thách này đã được điều chỉnh cho CodeUtility. Hãy làm theo đề bài và các ràng buộc ở trên.

Học hỏi từ người khác

Giải pháp cộng đồng

Chưa có giải pháp nào được chia sẻ. Hãy giải thử thách này để đăng giải pháp đầu tiên.