Bài viết được sự cho phép của tác giả Kiên Nguyễn
Reverse Array là bài toán phổ biến mà bất cứ kĩ sư phần mềm nào cũng cần phải hiểu rõ và áp dụng thành thục. Mở rộng ra cho cả string và các bài toán khác.
Cùng tìm hiểu một số lời giải cơ bản cho Array ngay thôi nào!
1. Reverse Array với ESTCV Approach
Làm việc với Array tất nhiên phải chú ý tới complexity (độ phức tạp). Arrays provide O(1) lookup by index (Tìm kiếm theo index trên Array luôn có độ phức tạp nhỏ nhất O(1)
Ngoài đảo ngược Array, cũng có một bài toán khác khá hay liên quan tới Array là duplicate item trong array.
- Time Complexity: O(n) aka linear time
- Space Complexity: O(1) aka constant space
Độ phức tạp về thời gian là O(n) do duyệt mảng từ đầu tới cuối
2. Traverse từ Both Ends


1) Initialize start and end indexes as start = 0, end = n-1
2) Swap arr[start] with arr[end]
3) Recursively call reverse for rest of the array.
Về ý tưởng cơ bản thì khi muốn đảo ngược array, ta sẽ thực hiện đổi chỗ tuần tự phần tử đầu và cuối. Tiến dần về trong cho tới phần tử ở giữa. Có thể hiện thực code như sau:
3. Traverse String
Bài toán đảo ngược không những áp dụng cho Array mà còn có thể áp dụng cho String. Cho dãy string “This is Kieblog”, đảo ngược chuỗi với Time Complexity và Space Complexity là O(n)
Ngoài Reverse Array, cũng có những bài mở rộng hơn là tìm kiếm 2 vị trí trong array sao cho tổng là một số nguyên (target nhất định). Ước định rằng array đã được sort từ ban đầu. Ta cũng có thể lặp từ start tới end, tăng start nếu sum nhỏ hơn target và giảm end nếu sum đã lớn hơn target


4. Tham khảo
- Javascript empty array – đừng gán [] thêm một lần nào nữa
- Reverse an Array
- Coding Interview Problems: Reversing a List (Python)
Thank you so much for your time – Have a nice day – Happy coding!
Bài viết gốc được đăng tải tại kieblog.vn
Có thể bạn quan tâm:
- Big data là gì? Trò chuyện cùng CTO của Datamart Solutions để hiểu hơn về data
- Trò chuyện cùng Phú Trần – Solution Architect tại Sendo và tìm hiểu con đường sự nghiệp của Solution Architect
- The solution for Nearest Neighbors Search – Part 1
Xem thêm Việc làm IT hấp dẫn trên TopDev