Mô tả
Cô Lan quản lý trạm quan trắc môi trường ven Hồ Tây. Mỗi giờ cô ghi lại nhiệt độ nước tại một vị trí dọc bờ. Cô nhận ra biên độ nhiệt trong ngày — tức chênh lệch giữa giá trị cao nhất và thấp nhất — đang bị mở rộng do ảnh hưởng của các chu kỳ triều nhiệt. Để thu hẹp biên độ này, cô có một chiến lược: tại mỗi bước, cô chọn hoặc "warm hơn" (đẩy cả hai đầu lên cùng 1 độ) hoặc "cool hơn" (hạ cả hai đầu xuống cùng 1 độ). Mục tiêu là làm cho hai đầu của dãy (phần tử nhỏ nhất và lớn nhất) bằng nhau, và cô muốn thực hiện càng ít bước càng tốt.
Cho một dãy nhiệt độ nguyên theo giờ, hãy tìm số bước tối thiểu để chênh lệch giữa phần tử lớn nhất và nhỏ nhất bằng 0, với mỗi bước được thực hiện như trên. Nếu dãy chỉ còn 1 phần tử thì chênh lệch đã bằng 0.
Đầu vào
- Dãy nhiệt độ: một mảng số nguyên
temperatures, trong đótemperatures[i]là nhiệt độ tại giờ thứi.
Đầu ra
- Trả về một số nguyên là số bước tối thiểu cần thực hiện.
Ràng buộc
1 <= len(temperatures) <= 10^5-10^9 <= temperatures[i] <= 10^9
Ví dụ
Ví dụ 1:
- Đầu vào:
[3, 7, 5] - Đầu ra:
4 - Giải thích: Nhiệt độ nhỏ nhất là 3, lớn nhất là 7. Mỗi bước chỉ thay đổi chênh lệch 1 đơn vị. Cần 7 - 3 = 4 bước để phần tử lớn nhất và nhỏ nhất bằng nhau.
Ví dụ 2:
- Đầu vào:
[-2, 4, 0, 6] - Đầu ra:
8 - Giải thích: Nhỏ nhất là -2, lớn nhất là 6. Chênh lệch 6 - (-2) = 8, nên cần 8 bước.