Mô tả
Sau giải chạy bộ quốc tế tại Mỹ Đình, BTC muốn tổ chức buổi diễu hành đặc biệt. Thay vì tiến về phía trước như lúc thi, các vận động viên cần di chuyển ngược chiều từ vạch đích quay trở lại vạch xuất phát để chào khán giả.
Bạn là tình nguyện viên phụ trách danh sách. Hãy viết chương trình nhận vào danh sách thứ tự hiện tại của các vận động viên và trả về danh sách mới với thứ tự hoàn toàn ngược lại. Lưu ý: vận động viên đầu danh sách sẽ đứng cuối và ngược lại.
Đầu vào
Một mảng số nguyên arr bao gồm mã số của các vận động viên.
Kích thước mảng: 0 <= n <= 10^5.
Mã số vận động viên: |value| <= 10^9.
Đầu ra
Mảng số nguyên là thứ tự các vận động viên sau khi đã bị đảo ngược.
Ràng buộc
- Thời gian chạy: 2000ms.
- Bộ nhớ hạn chế, bạn nên ưu tiên thuật toán đổi chỗ trực tiếp (in-place) để tối ưu hiệu suất thay vì tạo mảng mới không cần thiết.
Ví dụ
Ví dụ 1:
- Đầu vào:
[1, 2, 3, 4, 5] - Giải thích: Mảng ban đầu là
[1, 2, 3, 4, 5]. Sau khi đảo ngược, số 1 đi xuống cuối, số 5 lên đầu. Các phần tử ở giữa đổi chổ lần lặp (2 với 4, số 3 giữ nguyên). - Đầu ra:
[5, 4, 3, 2, 1]
Ví dụ 2:
- Đầu vào:
[10, -2, 33] - Giải thích: Đổi chỗ 10 và 33, giữ nguyên -2 ở giữa.
- Đầu ra:
[33, -2, 10]