Thực hành cấu trúc dữ liệu và thuật toán Python

Thực hành cấu trúc dữ liệu và thuật toán Python

Mã hóa Freak

Làm theo

15 Tháng bảy 2018

·

28 phút đọc

Hơn 500 câu hỏi phỏng vấn về cấu trúc dữ liệu và thuật toán & vấn đề thực hành

Mảng
  1. Tìm cặp có tổng đã cho trong mảng
  2. Kiểm tra xem mảng con có tổng bằng 0 có tồn tại hay không
  3. In tất cả các mảng con có tổng bằng 0
  4. Sắp xếp mảng nhị phân trong thời gian tuyến tính
  5. Tìm một phần tử trùng lặp trong một mảng phạm vi giới hạn
  6. Tìm mảng con có độ dài lớn nhất có tổng đã cho
  7. Tìm mảng con có độ dài lớn nhất có số lượng 0 và 1 bằng nhau
  8. Tìm tích lớn nhất của hai số nguyên trong một mảng
  9. Sắp xếp một mảng chứa 0, 1 và 2 (Bài toán Quốc kỳ Hà Lan)
  10. Tại chỗ hợp nhất hai mảng được sắp xếp
  11. Hợp nhất hai mảng bằng cách thỏa mãn các ràng buộc đã cho
  12. Tìm chỉ số của 0 để thay thế để có dãy liên tục có độ dài lớn nhất
  13. Xáo trộn một mảng các phần tử đã cho (xáo trộn Fisher–Yates)
  14. Sắp xếp lại mảng với các phần tử cao và thấp xen kẽ
  15. Tìm chỉ số cân bằng của một mảng
  16. Tìm mảng con lớn nhất được tạo bởi các số nguyên liên tiếp
  17. Tìm phần tử đa số (Thuật toán bỏ phiếu đa số Boyer-Moore)
  18. Di chuyển tất cả các số 0 có trong mảng đến cuối
  19. Thay thế từng phần tử của mảng bằng tích của mọi phần tử khác mà không sử dụng toán tử /
  20. Tìm Bitonic Subarray dài nhất trong một mảng
  21. Dãy con tăng dài nhất
  22. Tìm sự khác biệt lớn nhất giữa hai phần tử trong mảng bằng cách thỏa mãn các ràng buộc đã cho
  23. Bài toán phân đoạn tổng tối đa (Thuật toán Kadane)
  24. In mảng con liên tục với tổng tối đa
  25. Phân đoạn tròn tổng tối đa
  26. Tìm tất cả các tổ hợp riêng biệt có độ dài cho trước — I
  27. Tìm tất cả các kết hợp riêng biệt có độ dài nhất định với phép lặp lại
  28. Tìm dãy số 1 liên tục lớn nhất được hình thành bằng cách thay tối đa k số 0 bằng số 1
  29. Tìm mảng con có tổng nhỏ nhất có kích thước k đã cho
  30. Tìm mảng con sản phẩm tối đa trong một mảng nhất định
  31. Tìm mảng con có tổng đã cho trong mảng các số nguyên đã cho
  32. Tìm độ dài của mảng con nhỏ nhất có tổng các phần tử lớn hơn số đã cho
  33. Tìm số lớn nhất có thể từ tập hợp các số đã cho
  34. Tìm cửa sổ nhỏ nhất trong sắp xếp mảng sẽ làm cho toàn bộ mảng được sắp xếp
  35. Tìm đường dẫn tổng tối đa liên quan đến các phần tử của các mảng đã cho
  36. Lợi nhuận tối đa kiếm được bằng cách mua và bán cổ phiếu nhiều lần
  37. Bẫy nước mưa trong tập hợp các thanh nhất định
  38. Tìm các nền tảng tối thiểu cần thiết trong nhà ga để tránh bất kỳ sự chậm trễ nào khi tàu đến
  39. Giải mã mảng được xây dựng từ một mảng khác
  40. Sắp xếp một mảng bằng một lần hoán đổi
  41. Tìm Bộ ba với tổng đã cho trong một mảng
  42. Độ dài của chuỗi liên tục dài nhất có cùng tổng trong các mảng nhị phân đã cho
  43. Đảo ngược mọi m phần tử liên tiếp của mảng con đã cho
  44. Bài toán tập con sản phẩm tối đa
  45. Tìm các cặp có hiệu k cho trước trong mảng
  46. Tìm các cặp có hiệu k cho trước trong mảng. Giải pháp không gian cố định
  47. bài toán 4 tổng. Bộ tứ với tổng đã cho
  48. In tất cả các bộ tứ với tổng đã cho. bài toán 4 tổng mở rộng
  49. Thuật toán chọn nhanh
  50. Sắp xếp lại mảng sao cho A[A[i]] được đặt thành i cho mọi phần tử A[i]
  51. In tất cả các Bộ ba tạo thành Cấp số cộng
  52. In tất cả các Bộ ba tạo thành Cấp tiến Hình học
  53. In tất cả các tổ hợp số từ 1 đến n có tổng n
  54. Thay thế từng phần tử của mảng bằng thứ hạng tương ứng của nó trong mảng
  55. In tất cả các Bộ ba trong một mảng có tổng nhỏ hơn hoặc bằng số đã cho
  56. Nhóm các phần tử của một mảng dựa trên lần xuất hiện đầu tiên của chúng
  57. Tìm chênh lệch nhỏ nhất giữa chỉ số của hai phần tử đã cho có trong mảng
  58. Tìm hiệu tuyệt đối lớn nhất giữa tổng hai mảng con không trùng nhau
  59. Tìm tất cả các cặp đối xứng trong một mảng các cặp
  60. Phân vùng một mảng thành hai mảng con có cùng tổng
  61. Tìm số phần tử riêng biệt trong mỗi mảng con có kích thước k
  62. Tìm hai số có tổng lớn nhất được lập bởi dãy các chữ số
  63. In tất cả các mảng con của một mảng có các phần tử riêng biệt
  64. Tìm một bộ ba có sản phẩm tối đa trong một mảng
  65. Tìm chỉ số tối thiểu của phần tử lặp lại trong một mảng
  66. Tạo đầu vào ngẫu nhiên từ một mảng theo xác suất nhất định
  67. Tìm cặp trong một mảng có tổng tuyệt đối nhỏ nhất
  68. Tìm chỉ số của phần tử xảy ra tối đa với xác suất bằng nhau
  69. Kiểm tra xem một mảng có được hình thành bởi các số nguyên liên tiếp không
  70. Tìm hai cặp không trùng lặp có cùng tổng trong một mảng
  71. Thêm các phần tử của hai mảng vào một mảng mới
  72. Tìm sản phẩm tối thiểu trong số tất cả các kết hợp của bộ ba trong một mảng
  73. Thay thế mọi phần tử của một mảng bằng phần tử lớn hơn nhỏ nhất ở bên phải của nó
  74. Tìm tất cả các phần tử xuất hiện lẻ trong một mảng có phạm vi phần tử giới hạn
  75. Đếm các giá trị tuyệt đối riêng biệt trong mảng đã sắp xếp
  76. In ra tất cả các tổ hợp số nguyên dương theo thứ tự tăng dần có tổng bằng một số cho trước
  77. Tìm tất cả các tổ hợp riêng biệt có độ dài cho trước — II
  78. Tìm các mảng con với tổng đã cho trong một mảng
  79. Tìm số lượng vượt trội cho từng phần tử của một mảng
  80. Tìm độ dài lớn nhất của dãy liên tục (Sử dụng cửa sổ trượt)
  81. Tìm dãy liên tục có độ dài lớn nhất
  82. Tìm chỉ mục chia một mảng thành hai mảng con không trống có tổng bằng nhau
  83. Tính tần suất của tất cả các phần tử có trong một mảng của phạm vi được chỉ định
  84. Sắp xếp lại mảng sao cho nó chứa các số dương và số âm ở các vị trí thay thế
  85. Tìm bộ ba đã sắp xếp trong mảng đã cho
  86. Xáo trộn một mảng theo thứ tự nhất định của các phần tử
  87. Đếm số mảng con tăng dần trong một mảng
  88. Tìm các bản sao trong phạm vi k đã cho trong một mảng
  89. Vấn đề chuỗi con xen kẽ dài nhất
  90. Tìm phạm vi tối thiểu với ít nhất một phần tử từ mỗi mảng đã cho
  91. Tìm dãy con dài nhất được tạo bởi các số nguyên liên tiếp
  92. Tìm tất cả các phần tử trong một mảng lớn hơn tất cả các phần tử ở bên phải của chúng
  93. Tìm số còn thiếu trong mảng mà không cần sử dụng thêm không gian
  94. Xác định chỉ số của một phần tử trong mảng đã cho thỏa mãn các ràng buộc đã cho
  95. Tìm các bước di chuyển tối thiểu cần thiết để chuyển đổi một mảng đã cho thành một mảng các số 0
  96. Xoay trái một mảng
  97. Xoay phải một mảng k lần
  98. Tìm lợi nhuận tối đa kiếm được từ nhiều nhất hai giao dịch chứng khoán
  99. Tìm Tần suất của từng phần tử trong một mảng được sắp xếp có chứa các phần trùng lặp
  100. Tìm phần tử Tối thiểu và Tối đa trong một mảng bằng phép so sánh tối thiểu
  101. Sự khác biệt giữa Subarray, Subsequence và Subset
  102. Tìm phần tử xuất hiện lẻ trong một mảng trong một lần truyền tải
  103. Tìm phần tử xuất hiện lẻ trong thời gian logarit
  104. Tìm hai phần tử xuất hiện lẻ trong một mảng mà không sử dụng thêm bất kỳ khoảng trắng nào
  105. Kiểm tra xem mảng đã cho có đại diện cho heap tối thiểu hay không
  106. Tìm phần tử nhỏ thứ K trong mảng
  107. Tìm phần tử lớn thứ K trong mảng
  108. Sắp xếp một K-Sorted Array
  109. Hợp nhất M danh sách được sắp xếp có độ dài thay đổi
  110. Tìm phạm vi nhỏ nhất với ít nhất một phần tử từ mỗi danh sách đã cho
  111. Gộp M danh sách đã sắp xếp, mỗi danh sách chứa N phần tử
  112. Tìm tổng lớn nhất của dãy con không có phần tử liền kề
  113. Tìm cách tính toán một mục tiêu từ các phần tử của mảng được chỉ định
  114. Sắp xếp các phần tử theo tần suất và Chỉ mục của chúng
  115. Sắp xếp một mảng dựa trên thứ tự được xác định bởi một mảng khác
  116. Inversion Count của một mảng
  117. Tách các số nguyên dương và âm trong thời gian tuyến tính
  118. Tìm số lần quay trong một mảng được sắp xếp theo vòng tròn
  119. Tìm kiếm một phần tử trong một mảng được sắp xếp theo vòng tròn
  120. Tìm lần xuất hiện đầu tiên hoặc cuối cùng của một số đã cho trong một mảng đã sắp xếp
  121. Đếm số lần xuất hiện của một số trong một mảng được sắp xếp có trùng lặp
  122. Tìm phần tử còn thiếu nhỏ nhất trong một mảng đã sắp xếp
  123. Tìm Tầng và Trần của một số trong một mảng đã sắp xếp
  124. Tìm kiếm trong một mảng gần được sắp xếp trong thời gian logarit
  125. Tìm số 1 trong một mảng nhị phân được sắp xếp
  126. Tìm thuật ngữ còn thiếu trong một chuỗi trong thời gian logarit
  127. Tìm số bị thiếu và các phần tử trùng lặp trong một mảng
  128. Tìm phần tử đỉnh trong mảng
  129. Tìm Tầng và Trần của một số trong mảng đã sắp xếp (Giải pháp đệ quy)
  130. In ra tất cả các tập con phân biệt của một tập đã cho
  131. Tìm hai phần tử trùng nhau trong một mảng giới hạn (dùng XOR)
  132. Sự kết hợp của các từ được hình thành bằng cách thay thế các số đã cho bằng các bảng chữ cái tương ứng
  133. 0–1 Vấn đề về chiếc ba lô
  134. Tổng tập hợp con Vấn đề
  135. Sự cố phân vùng
  136. Vấn đề 3 phân vùng
  137. Vấn đề mở rộng 3 phân vùng. In tất cả các phân vùng
  138. Vấn đề phân vùng K. In tất cả các phân vùng
  139. Vấn đề phân vùng tổng tối thiểu
  140. cắt que
  141. Bài toán dãy con xen kẽ dài nhất
  142. Vấn đề thay đổi tiền xu (nguồn cung cấp tiền không giới hạn)
  143. Vấn đề đổi tiền xu - Tìm tổng số cách để có được mệnh giá tiền xu
  144. Tìm lợi nhuận tối đa kiếm được từ hầu hết các giao dịch cổ phiếu K
quay lui
  1. In tất cả các giải pháp có thể có cho Bài toán N Queens
  2. In tất cả các chuyến đi của Hiệp sĩ có thể có trong bàn cờ
  3. Tìm đường đi ngắn nhất trong mê cung
  4. Tìm tuyến đường dài nhất có thể trong ma trận
  5. Tìm đường dẫn từ nguồn đến đích trong một ma trận thỏa mãn các ràng buộc đã cho
  6. Tìm tổng số đường dẫn duy nhất trong mê cung từ nguồn đến đích
  7. In Tất cả Đường đi Hamilton có trong đồ thị
  8. In tất cả các cấu hình có thể tô màu k của biểu đồ (Tô màu đỉnh của biểu đồ)
  9. Tìm tất cả các hoán vị của một chuỗi đã cho
  10. Tất cả các tổ hợp của các phần tử thỏa mãn các ràng buộc đã cho
  11. Tìm tất cả các chuỗi nhị phân có thể được hình thành từ mẫu ký tự đại diện đã cho
  12. Vấn đề phân vùng K. In tất cả các phân vùng
  13. câu đố nam châm
  14. Tìm cách tính toán một mục tiêu từ các phần tử của mảng được chỉ định
  15. Tìm số tối thiểu có thể bằng cách thực hiện nhiều nhất K hoán đổi
  16. Xác định xem một mẫu có khớp với một chuỗi hay không
  17. Tạo danh sách các từ có thể từ ma trận ký tự
  18. Tìm đường đi giữa các đỉnh đã cho trong đồ thị có hướng
  19. Tìm tất cả các thứ tự cấu trúc liên kết có thể có của DAG
  20. In tất cả các tuyến đường ngắn nhất trong lưới hình chữ nhật
nhị phân
  1. Bit Hacks — Phần 1 (Cơ bản)
  2. Bit Hacks — Phần 2 (Chơi với bit thứ k)
  3. Bit Hacks — Phần 3 (Chơi với bộ bit ngoài cùng bên phải của một số)
  4. Bit Hacks — Phần 4 (Chơi với các chữ cái trong bảng chữ cái tiếng Anh)
  5. Bit Hacks — Phần 5 (Tìm giá trị tuyệt đối của một số nguyên không phân nhánh)
  6. Bit Hacks - Phần 6 (Sự cố ngẫu nhiên)
  7. Thuật toán của Brian Kernighan để đếm các bit đã đặt trong một số nguyên
  8. Làm tròn đến lũy thừa cao nhất tiếp theo của 2
  9. Làm tròn lên lũy thừa trước đó của 2
  10. Tính chẵn lẻ của một số bằng bảng tra cứu
  11. Đếm các bit đã đặt bằng bảng tra cứu
  12. Tìm giá trị nhỏ nhất hoặc lớn nhất của hai số nguyên mà không sử dụng phân nhánh
  13. Nhân số nguyên 16 bit bằng hệ số nhân 8 bit
  14. Hoán đổi các bit riêng lẻ tại vị trí đã cho trong một số nguyên
  15. Kiểm tra xem số đã cho có phải là lũy thừa của 4 hay không
  16. Kiểm tra xem số đã cho có phải là lũy thừa của 8 hay không
  17. Đảo ngược bit của một số nguyên nhất định
  18. Tìm phần tử xuất hiện lẻ trong một mảng trong một lần truyền tải
  19. Tìm hai phần tử xuất hiện lẻ trong một mảng mà không sử dụng thêm bất kỳ khoảng trắng nào
  20. Hoán đổi hai bit tại vị trí đã cho trong một số nguyên
  21. Thêm biểu diễn nhị phân của hai số nguyên
  22. Hoán đổi các bit liền kề của một số
  23. In ra tất cả các tập con phân biệt của một tập đã cho
  24. Thực hiện Phép chia hai số không dùng toán tử chia (/)
  25. Kiểm tra xem các bit liền kề có được đặt ở dạng biểu diễn nhị phân của một số đã cho không
  26. Có điều kiện phủ định một giá trị mà không cần phân nhánh
  27. Tìm hai phần tử trùng nhau trong một mảng giới hạn (dùng XOR)
  28. Đảo ngược bit của một số nguyên bằng cách sử dụng bảng tra cứu
  29. Tìm số bị thiếu và các phần tử trùng lặp trong một mảng
  30. Dịch chuyển tròn trên biểu diễn nhị phân của một số nguyên theo k vị trí
  31. Tính phép chia mô đun mà không có phép chia và toán tử modulo
  32. Giải tập hợp các bài toán đã cho mà không sử dụng toán tử nhân hoặc chia
  33. Tìm XOR của hai số mà không cần sử dụng toán tử XOR
  34. Tạo tập hợp sức mạnh của một tập hợp nhất định
  35. Mã hóa Huffman
  36. Tìm số còn thiếu trong mảng mà không cần sử dụng thêm không gian
  37. Tìm phần tử xuất hiện lẻ trong thời gian logarit
  38. Tìm tất cả các phần tử xuất hiện lẻ trong một mảng có phạm vi phần tử giới hạn
Cây nhị phân
  1. Kiểm tra xem hai cây nhị phân đã cho có giống nhau hay không
  2. Tính chiều cao của cây nhị phân
  3. Xóa cây nhị phân đã cho
  4. Inorder Tree Traversal (Triển khai lặp đi lặp lại và đệ quy)
  5. Preorder Tree Traversal (Triển khai lặp đi lặp lại và đệ quy)
  6. Postorder Tree Traversal (Triển khai lặp đi lặp lại và đệ quy)
  7. Trình tự cấp độ của cây nhị phân
  8. Trình duyệt xoắn ốc của cây nhị phân
  9. Trình duyệt thứ tự cấp đảo ngược của cây nhị phân
  10. In tất cả các nút của một cây nhị phân nhất định theo thứ tự cụ thể
  11. In chế độ xem bên trái của cây nhị phân
  12. In xem dưới cùng của cây nhị phân
  13. In Top View của cây nhị phân
  14. Tìm nút tiếp theo cùng cấp với nút đã cho trong cây nhị phân
  15. Kiểm tra xem cây nhị phân đã cho có phải là cây nhị phân hoàn chỉnh hay không
  16. Chuyển đổi tại chỗ cây nhị phân đã cho thành cây tổng của nó
  17. Xác định xem hai nút đã cho có phải là anh em họ của nhau không
  18. In anh em họ của nút đã cho trong cây nhị phân
  19. Kiểm tra xem cây nhị phân đã cho có phải là cây tổng hay không
  20. Sự kết hợp của các từ được hình thành bằng cách thay thế các số đã cho bằng các bảng chữ cái tương ứng
  21. Xác định xem cây nhị phân đã cho có phải là cây con của cây nhị phân khác hay không
  22. Tìm đường kính của cây nhị phân
  23. Kiểm tra xem Cây nhị phân đã cho có cấu trúc đối xứng hay không
  24. Chuyển đổi cây nhị phân sang gương của nó
  25. Kiểm tra xem cây nhị phân có thể được chuyển đổi sang cây khác hay không bằng cách thực hiện bất kỳ. hoán đổi con trái và con phải
  26. Tìm Tổ tiên chung thấp nhất (LCA) của hai nút trong cây nhị phân
  27. In tất cả các đường dẫn từ nút gốc đến nút lá trong cây nhị phân
  28. Tìm tổ tiên của nút đã cho trong Cây nhị phân
  29. Tìm khoảng cách giữa các cặp nút đã cho trong cây nhị phân
  30. Tìm tổng theo chiều dọc trong một cây nhị phân nhất định
  31. Thực hiện duyệt dọc cây nhị phân — I
  32. Thực hiện duyệt dọc cây nhị phân — II
  33. In các nút góc của mọi cấp độ trong cây nhị phân
  34. Tìm tổng đường chéo của cây nhị phân đã cho
  35. In đường chéo của cây nhị phân
  36. Chuyển đổi tại chỗ Cây nhị phân thành Danh sách liên kết đôi
  37. Các nút chìm chứa số 0 ở dưới cùng của cây nhị phân
  38. Chuyển đổi cây nhị phân đã cho thành cây đầy đủ bằng cách loại bỏ một nửa nút
  39. Cắt bớt cây nhị phân đã cho để loại bỏ các nút nằm trên đường có tổng nhỏ hơn K
  40. Tìm tổng đường dẫn từ gốc đến lá tối đa trong cây nhị phân
  41. Kiểm tra xem cây nhị phân đã cho có cân bằng chiều cao hay không
  42. Tìm chiều rộng tối đa của cây nhị phân đã cho
  43. Chuyển đổi cây nhị phân bình thường thành cây nhị phân anh chị em bên trái
  44. Xác định xem Cây nhị phân đã cho có phải là BST hay không
  45. Chuyển đổi Cây nhị phân thành BST bằng cách duy trì cấu trúc ban đầu của nó
  46. Đảo ngược cây nhị phân
  47. In Chế độ xem bên phải của cây nhị phân
  48. In tất cả các đường dẫn từ nút lá đến nút gốc trong cây nhị phân đã cho
  49. Lặp lại in đường dẫn lá đến gốc cho mọi nút lá trong cây nhị phân
  50. Xây dựng cây nhị phân từ mảng Parent đã cho
  51. Tìm tất cả các nút ở khoảng cách nhất định từ các nút lá trong cây nhị phân
  52. Đếm tất cả các cây con có cùng giá trị của các nút trong cây nhị phân
  53. Tìm sự khác biệt tối đa giữa một nút và hậu duệ của nó trong cây nhị phân
  54. Xây dựng cây nhị phân từ ma trận tổ tiên
  55. Tính chiều cao của cây nhị phân với các nút lá tạo thành danh sách liên kết kép hình tròn
  56. Tìm đường dẫn tổng tối đa giữa hai lá trong cây nhị phân
  57. Sửa cây nhị phân chỉ một lần hoán đổi để trở thành BST
  58. Xây dựng cây nhị phân từ inorder và preorder traversal
  59. Xây dựng cây nhị phân từ các giao dịch theo thứ tự và theo thứ tự
  60. Xây dựng cây nhị phân từ dãy thứ tự và thứ tự cấp
  61. Xây dựng cây nhị phân đầy đủ từ chuỗi đặt trước với thông tin nút lá
  62. Xây dựng cây nhị phân đầy đủ từ trình tự sắp xếp trước và sắp xếp sau
  63. Đặt con trỏ tiếp theo theo thứ tự kế tiếp của tất cả các nút trong cây nhị phân
  64. In hiệu quả tất cả các nút giữa hai mức nhất định trong cây nhị phân
  65. Tìm duyệt theo thứ tự trước của cây nhị phân từ trình tự thứ tự và thứ tự sau của nó
  66. Tìm sự khác biệt giữa tổng của tất cả các nút có ở mức chẵn và lẻ trong cây nhị phân
  67. Tìm kích thước của BST lớn nhất trong Cây nhị phân
  68. Các nút liên kết hiện diện trong mỗi cấp của cây nhị phân dưới dạng danh sách liên kết
  69. Xây dựng một cây Descartes từ Traversal theo thứ tự
  70. Triển khai cấu trúc dữ liệu Treap (Chèn, Tìm kiếm và Xóa)
  71. Sao chép cây nhị phân với con trỏ ngẫu nhiên
  72. Cây nhị phân có ren. Tổng quan và Thực hiện
  73. Đảo ngược các mức thay thế của một cây nhị phân hoàn hảo
  74. Chuyển đổi cây nhị phân thành danh sách liên kết kép theo thứ tự xoắn ốc
  75. Kiểm tra xem cây nhị phân có phải là một đống nhỏ hay không
  76. Xác định xem cây nhị phân có thỏa mãn tính chất cân bằng chiều cao của cây đỏ đen không
  77. Tìm kiếm theo chiều sâu (DFS) so với tìm kiếm theo chiều rộng (BFS)
BST
  1. Chèn vào BST
  2. Tìm kiếm khóa đã cho trong BST
  3. Xóa khỏi BST
  4. Xây dựng BST cân bằng từ các khóa đã cho
  5. Xác định xem Cây nhị phân đã cho có phải là BST hay không
  6. Kiểm tra xem các khóa đã cho có đại diện cho các BST giống nhau hay không mà không cần xây dựng BST
  7. Tìm tiền thân thứ tự cho khóa đã cho trong BST
  8. Tìm Tổ tiên chung thấp nhất (LCA) của hai nút trong Cây tìm kiếm nhị phân
  9. Tìm phần tử nhỏ thứ K và lớn nhất thứ K trong BST
  10. Tầng và Trần trong Cây tìm kiếm nhị phân
  11. Tìm chi phí tối ưu để xây dựng cây tìm kiếm nhị phân
  12. Chuyển đổi Cây nhị phân thành BST bằng cách duy trì cấu trúc ban đầu của nó
  13. Xóa các nút khỏi BST có khóa nằm ngoài phạm vi hợp lệ
  14. Tìm một cặp có tổng đã cho trong BST
  15. Tìm người kế vị thứ tự cho khóa đã cho trong BST
  16. Thay thế mọi phần tử của một mảng bằng phần tử lớn hơn nhỏ nhất ở bên phải của nó
  17. Sửa cây nhị phân chỉ một lần hoán đổi để trở thành BST
  18. Cập nhật mọi khóa trong BST để chứa tổng của tất cả các khóa lớn hơn
  19. Kiểm tra xem một chuỗi đã cho có đại diện cho quá trình duyệt đơn đặt hàng trước của BST không
  20. Xây dựng cây tìm kiếm nhị phân từ chuỗi đặt hàng sau
  21. Xây dựng cây tìm kiếm nhị phân từ chuỗi đặt hàng trước
  22. Tìm bộ ba có tổng đã cho trong BST
  23. Đếm các cây con trong BST có các nút nằm trong một phạm vi nhất định
  24. Hợp nhất hai BST thành danh sách liên kết đôi theo thứ tự được sắp xếp
  25. Dựng BST cân bằng chiều cao từ BST không cân đối
  26. Tìm kích thước của BST lớn nhất trong Cây nhị phân
  27. Chuyển đổi cây tìm kiếm nhị phân thành một đống tối thiểu
  28. Xây dựng BST Cân bằng Chiều cao từ Danh sách Liên kết Đôi được Sắp xếp
Chia để trị
  1. Thuật toán tìm kiếm nhị phân
  2. Tìm số lần quay trong một mảng được sắp xếp theo vòng tròn
  3. Tìm kiếm một phần tử trong một mảng được sắp xếp theo vòng tròn
  4. Tìm lần xuất hiện đầu tiên hoặc cuối cùng của một số đã cho trong một mảng đã sắp xếp
  5. Đếm số lần xuất hiện của một số trong một mảng được sắp xếp có trùng lặp
  6. Tìm phần tử còn thiếu nhỏ nhất trong một mảng đã sắp xếp
  7. Tìm Tầng và Trần của một số trong một mảng đã sắp xếp
  8. Tìm kiếm trong một mảng gần được sắp xếp trong thời gian logarit
  9. Tìm số 1 trong một mảng nhị phân được sắp xếp
  10. Tìm phần tử đỉnh trong mảng
  11. Phân đoạn tổng tối đa sử dụng Chia & Chinh phục
  12. Thực hiện hiệu quả chức năng quyền lực
  13. Tìm thuật ngữ còn thiếu trong một chuỗi trong thời gian logarit
  14. Phép chia hai số bằng thuật toán tìm kiếm nhị phân
  15. Tìm Tầng và Trần của một số trong mảng đã sắp xếp (Giải pháp đệ quy)
  16. Tìm Tần suất của từng phần tử trong một mảng được sắp xếp có chứa các phần trùng lặp
  17. Tìm phần tử xuất hiện lẻ trong thời gian logarit
  18. Tìm kiếm Ternary vs Tìm kiếm nhị phân
  19. tìm kiếm theo cấp số nhân
  20. Tìm kiếm nhị phân không giới hạn
  21. tìm kiếm nội suy
  22. Hợp nhất thuật toán sắp xếp
  23. thuật toán sắp xếp nhanh
Lập trình năng động
  1. Giới thiệu về lập trình động
  2. Bài toán dãy con chung dài nhất
  3. Dãy con chung dài nhất. Phiên bản tối ưu hóa không gian
  4. Dãy con chung dài nhất của dãy K
  5. Dãy con chung dài nhất. Tìm tất cả LCS
  6. Bài toán chuỗi con chung dài nhất
  7. Bài toán dãy con Palindromic dài nhất
  8. Bài toán dãy con lặp lại dài nhất
  9. Triển khai tiện ích khác biệt
  10. Bài toán siêu dãy chung ngắn nhất
  11. Siêu dãy chung ngắn nhất. Tìm tất cả SCS
  12. Bài toán siêu dãy chung ngắn nhất sử dụng LCS
  13. Bài toán dãy con tăng dài nhất
  14. Bài toán dãy con giảm dài nhất
  15. Dãy con Bitonic dài nhất
  16. Tăng dãy con với tổng tối đa
  17. Bài toán Khoảng cách Levenshtein (Chỉnh sửa Khoảng cách)
  18. Tìm kích thước của ma trận con vuông lớn nhất của 1 trong ma trận nhị phân đã cho
  19. Phép nhân chuỗi ma trận
  20. Tìm chi phí tối thiểu để đến ô cuối cùng của ma trận từ ô đầu tiên của nó
  21. Tìm dãy dài nhất được tạo bởi các số liền kề trong ma trận
  22. Đếm số đường dẫn trong ma trận với chi phí đã cho để đến ô đích
  23. 0–1 Vấn đề về chiếc ba lô
  24. Giá trị lớn nhất của biểu thức
  25. Sự cố phân vùng
  26. Tổng tập hợp con Vấn đề
  27. Vấn đề 3 phân vùng
  28. Vấn đề phân vùng tổng tối thiểu
  29. cắt que
  30. Cắt thanh sản phẩm tối đa
  31. Vấn đề thay đổi tiền xu (nguồn cung cấp tiền không giới hạn)
  32. Vấn đề đổi tiền xu - Tìm tổng số cách để có được mệnh giá tiền xu
  33. Tổng số nghiệm khả thi cho phương trình tuyến tính k biến
  34. Bài toán dãy con xen kẽ dài nhất
  35. Đếm số lần một mẫu xuất hiện trong chuỗi đã cho dưới dạng một chuỗi con
  36. Thu thập điểm tối đa trong ma trận bằng cách thỏa mãn các ràng buộc đã cho
  37. Tìm tất cả các chuỗi nhị phân có N chữ số không có số 1 liên tiếp
  38. Đếm tổng số kết hợp có thể có của các số có chữ số N trong bàn phím di động
  39. Lời Break vấn đề
  40. Xác định chi phí điều chỉnh tối thiểu của một mảng
  41. Kiểm tra xem một chuỗi có phải là K-Palindrome hay không
  42. Tìm tổng số cách để đạt được tổng đã cho với n lần ném xúc xắc có k mặt
  43. Kết hợp mẫu ký tự đại diện
  44. Tìm số cách để lấp đầy ma trận N x 4 bằng các ô 1 x 4
  45. Các cách để đến góc dưới cùng bên phải của ma trận với chính xác k lượt được phép
  46. Vấn đề lập lịch khoảng thời gian có trọng số
  47. Vấn đề xếp chồng hộp
  48. Tìm tổng số cách đi đến cầu thang thứ n với tối đa m bước
  49. Tìm tổng số cách đi đến cầu thang thứ n từ dưới lên
  50. Vấn đề lựa chọn hoạt động
  51. Tìm số lần xóa tối thiểu cần thiết để chuyển đổi một chuỗi thành palindrome
  52. Tính chi phí tối thiểu để đến thành phố đích từ thành phố nguồn
  53. Vấn đề trò chơi chậu vàng
  54. Tìm các vết cắt tối thiểu cần thiết cho phân vùng palindromic của một chuỗi
  55. Lập lịch khoảng thời gian có trọng số bằng thuật toán LIS
  56. Tìm bước nhảy tối thiểu cần thiết để đến đích
  57. Tìm xác suất để một người còn sống sau khi đi N bước trên đảo
  58. Tìm tổng lớn nhất của dãy con không có phần tử liền kề
  59. Chuỗi rắn có độ dài tối đa
  60. Tính kích thước của cộng lớn nhất của 1 trong ma trận nhị phân
  61. Chuỗi con tăng dài nhất sử dụng LCS
  62. Tìm lợi nhuận tối đa kiếm được từ hầu hết các giao dịch cổ phiếu K
  63. Đếm tất cả các đường dẫn trong ma trận từ ô đầu tiên đến ô cuối cùng
  64. Kiểm tra xem một chuỗi có khớp với mẫu ký tự đại diện đã cho không
  65. Kiểm tra xem chuỗi đã cho có xen kẽ của hai chuỗi đã cho khác không
  66. Tìm tất cả nhân viên báo cáo trực tiếp hoặc gián tiếp cho người quản lý
  67. Tìm chi phí tối ưu để xây dựng cây tìm kiếm nhị phân
  68. Tìm tổng lớn nhất của dãy con không có phần tử liền kề
  69. Bài toán phân đoạn tổng tối đa (Thuật toán Kadane)
  70. Vấn đề chuỗi con xen kẽ dài nhất
  71. Thu thập giá trị tối đa của tiền xu trong một ma trận
  72. Tìm độ dài đường đi dài nhất trong ma trận với các ký tự liên tiếp
  73. Tìm cách tính toán một mục tiêu từ các phần tử của mảng được chỉ định
  74. Tính tổng của tất cả các phần tử trong một ma trận con trong thời gian không đổi
  75. Tìm tổng lớn nhất K x K ma trận con trong một ma trận M x N cho trước
  76. Tìm ma trận con tổng lớn nhất có trong một ma trận đã cho
  77. Đường dẫn ngắn nhất từ ​​một nguồn — Thuật toán Bellman Ford
  78. Đường đi ngắn nhất cho tất cả các cặp — Thuật toán Floyd Warshall
đồ thị
  1. Thuật ngữ và biểu diễn đồ thị
  2. Triển khai đồ thị — C, C++, C++ (STL), Java (Bộ sưu tập), Python
  3. Thuật toán tìm kiếm theo chiều rộng đầu tiên (BFS)
  4. Thuật toán tìm kiếm theo chiều sâu (DFS)
  5. Tìm kiếm theo chiều sâu (DFS) so với tìm kiếm theo chiều rộng (BFS)
  6. Thời gian đến và đi của các đỉnh trong DFS
  7. Các loại cạnh liên quan đến DFS và mối quan hệ giữa chúng
  8. Đồ thị hai bên
  9. Xác định xem một biểu đồ đã cho có phải là Biểu đồ lưỡng cực hay không bằng DFS
  10. Bài toán con rắn và cái thang
  11. Sắp xếp tô pô trong một DAG
  12. Thuật toán sắp xếp tô pô của Kahn
  13. Transitive Closed của một đồ thị
  14. Kiểm tra xem đồ thị vô hướng có chu trình hay không
  15. Tổng số đường dẫn trong sơ đồ đã cho từ nguồn đã cho đến đích có chính xác m cạnh
  16. Xác định xem một đồ thị vô hướng có phải là Cây (Đồ thị được kết nối theo chu kỳ)
  17. Kết nối 2 cạnh trong biểu đồ
  18. Kết nối 2 đỉnh trong biểu đồ
  19. Kiểm tra xem sơ đồ đã cho có phải là DAG (Directed Acyclic Graph) hay không
  20. Cấu trúc dữ liệu Disjoint-Set (Thuật toán tìm liên kết)
  21. Vấn đề Hiệp sĩ cờ vua - Tìm đường đi ngắn nhất từ ​​nguồn đến đích
  22. Kiểm tra xem Biểu đồ đã cho có được kết nối mạnh hay không
  23. Kiểm tra xem Biểu đồ đã cho có được Kết nối Mạnh mẽ hay không bằng cách sử dụng một DFS Traversal
  24. Thuật toán tìm liên hợp để phát hiện chu trình trong đồ thị vô hướng
  25. Thuật toán Kruskal để tìm Cây bao trùm tối thiểu
  26. Đường đi ngắn nhất từ ​​một nguồn — Thuật toán Dijkstra
  27. Đường dẫn ngắn nhất từ ​​một nguồn — Thuật toán Bellman Ford
  28. Đường đi ngắn nhất cho tất cả các cặp — Thuật toán Floyd Warshall
  29. Tìm chi phí của con đường ngắn nhất trong DAG bằng cách sử dụng một lượt Bellman-Ford
  30. Đường dẫn chi phí thấp nhất trong Sơ đồ có trọng số bằng BFS
  31. Tìm đường dẫn chi phí tối đa trong biểu đồ từ nguồn đã cho đến đích
  32. Xác định chu kỳ trọng lượng âm trong biểu đồ
  33. Đường dẫn chi phí thấp nhất trong sơ đồ đã cho từ nguồn đã cho đến đích có chính xác m cạnh
  34. Tìm đường đi giữa các đỉnh đã cho trong đồ thị có hướng
  35. Tìm tất cả các thứ tự cấu trúc liên kết có thể có của DAG
  36. Tìm thứ tự chính xác của bảng chữ cái trong một từ điển có nguồn gốc cổ xưa nhất định
  37. Tìm đường đi dài nhất trong Đồ thị tuần hoàn có hướng (DAG)
  38. Xây dựng đồ thị có hướng từ đồ thị vô hướng thỏa mãn các ràng buộc đã cho
  39. In tất cả các cấu hình có thể tô màu k của biểu đồ (Tô màu đỉnh của biểu đồ)
  40. In Tất cả Đường đi Hamilton có trong đồ thị
  41. Bài toán tô màu đồ thị
Tham
  1. Vấn đề lựa chọn hoạt động
  2. Mã hóa Huffman
  3. Vấn đề sắp xếp công việc với thời hạn
  4. Bài toán tô màu đồ thị
  5. Thuật toán Kruskal để tìm Cây bao trùm tối thiểu
  6. Đường đi ngắn nhất từ ​​một nguồn — Thuật toán Dijkstra
  7. Bài toán siêu xâu ngắn nhất
đống
  1. Giới thiệu về hàng đợi ưu tiên sử dụng đống nhị phân
  2. Triển khai Heap tối thiểu và tối đa — C++, Java
  3. Thuật toán sắp xếp đống
  4. Kiểm tra xem mảng đã cho có đại diện cho heap tối thiểu hay không
  5. Chuyển đổi Heap tối đa thành Heap tối thiểu trong thời gian tuyến tính
  6. Tìm phần tử lớn thứ K trong mảng
  7. Sắp xếp một K-Sorted Array
  8. Hợp nhất M danh sách được sắp xếp có độ dài thay đổi
  9. Gộp K danh sách liên kết đã sắp xếp
  10. Tìm phần tử nhỏ thứ K trong mảng
  11. Tìm phạm vi nhỏ nhất với ít nhất một phần tử từ mỗi danh sách đã cho
  12. Gộp M danh sách đã sắp xếp, mỗi danh sách chứa N phần tử
  13. Tìm k ký tự không lặp lại đầu tiên trong một chuỗi trong một lần duyệt
  14. Tìm k từ xuất hiện tối đa đầu tiên trong tập hợp các chuỗi đã cho
  15. Triển khai cấu trúc dữ liệu Treap (Chèn, Tìm kiếm và Xóa)
  16. Chuyển đổi cây tìm kiếm nhị phân thành một đống tối thiểu
  17. Kiểm tra xem cây nhị phân có phải là một đống nhỏ hay không
  18. Mã hóa Huffman
  19. Thuật toán sắp xếp hợp nhất bên ngoài
Danh sách liên kết
  1. Giới thiệu về danh sách liên kết
  2. Triển khai danh sách được liên kết — C, C++, Java, Python
  3. Danh sách liên kết. Chèn ở đuôi
  4. Danh sách liên kết tĩnh
  5. Sao chép danh sách liên kết đã cho
  6. Xóa danh sách liên kết
  7. Thao tác pop trong danh sách liên kết
  8. Chèn nút đã cho vào đúng vị trí đã sắp xếp trong danh sách liên kết đã sắp xếp đã cho
  9. Sắp xếp lại danh sách liên kết theo thứ tự tăng dần (Sắp xếp danh sách liên kết)
  10. Tách các nút của danh sách liên kết đã cho thành hai nửa trước và sau
  11. Loại bỏ các bản sao khỏi danh sách liên kết được sắp xếp
  12. Di chuyển nút phía trước của danh sách đã cho lên trước danh sách khác
  13. Di chuyển các nút chẵn đến cuối danh sách theo thứ tự ngược lại
  14. Tách danh sách được liên kết đã cho thành hai danh sách trong đó mỗi danh sách chứa các phần tử xen kẽ từ nó
  15. Xây dựng một danh sách được liên kết bằng cách hợp nhất các nút thay thế của hai danh sách đã cho
  16. Hợp nhất thuật toán sắp xếp cho danh sách liên kết đơn
  17. Gộp hai danh sách liên kết đã sắp xếp thành một
  18. Gộp K danh sách liên kết đã sắp xếp
  19. Giao của hai danh sách liên kết đã sắp xếp
  20. Danh sách liên kết ngược (Giải pháp lặp)
  21. Danh sách liên kết ngược (Giải pháp đệ quy)
  22. Đảo ngược mọi nhóm k nút trong danh sách liên kết đã cho
  23. Tìm nút thứ K từ cuối danh sách liên kết
  24. Hợp nhất các nút thay thế của hai danh sách được liên kết thành danh sách đầu tiên
  25. Hợp nhất hai danh sách được liên kết được sắp xếp từ cuối của chúng
  26. Xóa mọi N nút trong danh sách liên kết sau khi bỏ qua M nút
  27. Sắp xếp lại danh sách được liên kết theo cách cụ thể trong thời gian tuyến tính
  28. Kiểm tra xem danh sách được liên kết có phải là palindrome hay không
  29. Di chuyển nút cuối cùng lên phía trước trong Danh sách được liên kết nhất định
  30. Sắp xếp lại danh sách liên kết theo cách cụ thể
  31. Phát hiện chu trình trong danh sách liên kết (Thuật toán phát hiện chu trình của Floyd)
  32. Sắp xếp danh sách liên kết chứa 0, 1 và 2
  33. Triển khai Stack bằng Danh sách liên kết
  34. Triển khai Hàng đợi bằng Danh sách Liên kết
  35. Xóa trùng lặp khỏi danh sách liên kết
  36. Sắp xếp lại danh sách được liên kết để nó có các giá trị cao, thấp xen kẽ
  37. Sắp xếp lại danh sách được liên kết bằng cách tách các nút lẻ khỏi nút chẵn
  38. Tính chiều cao của cây nhị phân với các nút lá tạo thành danh sách liên kết kép hình tròn
  39. Danh sách liên kết XOR. Tổng quan và Thực hiện
  40. Chuyển danh sách liên kết nhiều cấp thành danh sách liên kết đơn
  41. Kiểm tra đệ quy xem danh sách các ký tự được liên kết có phải là màu nhạt hay không
  42. Hợp nhất hai BST thành danh sách liên kết đôi theo thứ tự được sắp xếp
  43. Xóa các nút dư thừa khỏi đường dẫn được tạo bởi danh sách được liên kết
  44. Thêm một số có một chữ số vào danh sách được liên kết đại diện cho một số
  45. Đảo ngược mọi nhóm k nút thay thế trong danh sách được liên kết
  46. Xác định xem một danh sách liên kết đã cho có phải là một bảng màu hay không
  47. Sắp xếp danh sách liên kết kép bằng Merge Sort
  48. Đảo ngược danh sách liên kết kép
  49. Trao đổi cặp các nút liền kề của một danh sách được liên kết
  50. Làm phẳng danh sách liên kết
  51. Kiểm tra xem Danh sách Chuỗi được Liên kết có phải là Palindromic không
  52. Làm phẳng một danh sách liên kết đa cấp
  53. Dựng BST cân bằng chiều cao từ BST không cân đối
  54. Hoán đổi nút thứ K từ đầu với nút thứ K từ cuối trong Danh sách được liên kết
  55. Thêm hai danh sách được liên kết mà không sử dụng thêm bất kỳ khoảng trống nào
  56. Sao chép danh sách được liên kết với con trỏ ngẫu nhiên
  57. Cập nhật con trỏ ngẫu nhiên cho mỗi nút danh sách được liên kết để trỏ đến nút tối đa
  58. Các nút liên kết hiện diện trong mỗi cấp của cây nhị phân dưới dạng danh sách liên kết
  59. Chuyển đổi cây bậc ba thành danh sách liên kết kép
  60. In các nút của cây nhị phân đã cho theo thứ tự dọc
  61. Chuyển đổi cây nhị phân thành danh sách liên kết kép theo thứ tự xoắn ốc
  62. Xây dựng BST Cân bằng Chiều cao từ Danh sách Liên kết Đôi được Sắp xếp
  63. Hợp nhất tại chỗ hai danh sách được liên kết đã sắp xếp mà không sửa đổi liên kết của danh sách đầu tiên
  64. Đảo ngược phần được chỉ định của Danh sách được liên kết
ma trận
  1. In ma trận theo thứ tự xoắn ốc
  2. Tạo ma trận xoắn ốc từ mảng đã cho
  3. Dịch chuyển tất cả các phần tử ma trận bằng 1 theo thứ tự xoắn ốc
  4. Tìm đường đi ngắn nhất từ ​​nguồn đến đích trong một ma trận thỏa mãn các ràng buộc đã cho
  5. Đổi tất cả các phần tử của hàng i và cột j trong ma trận thành 0 nếu ô (i, j) có giá trị 0
  6. In các phần tử đường chéo của ma trận có hệ số góc dương
  7. Tìm tất cả các đường dẫn từ ô đầu tiên đến ô cuối cùng của ma trận
  8. Thay thế tất cả các lần xuất hiện của 0 không được bao quanh bởi 1 trong ma trận nhị phân
  9. Xoay ma trận tại chỗ 90 độ theo chiều kim đồng hồ
  10. Đếm các phần tử âm có trong ma trận được sắp xếp theo thời gian tuyến tính
  11. Báo cáo tất cả các lần xuất hiện của một phần tử theo hàng và ma trận được sắp xếp theo cột theo thời gian tuyến tính
  12. Tính tổng của tất cả các phần tử trong một ma trận con trong thời gian không đổi
  13. Tìm tổng lớn nhất K x K ma trận con trong một ma trận M x N cho trước
  14. Tìm ma trận con tổng lớn nhất có trong một ma trận đã cho
  15. Đếm số đảo
  16. thuật toán lấp lũ
  17. Tìm tuyến đường an toàn ngắn nhất trong một lĩnh vực có cảm biến
  18. Tìm tất cả các lần xuất hiện của chuỗi đã cho trong ma trận ký tự
  19. Con đường ngắn nhất trong mê cung. Thuật toán Lee
  20. Kiểm tra xem ma trận đã cho có phải là ma trận Toeplitz hay không
  21. Tại chỗ xoay ma trận 180 độ
  22. Điền vào ma trận nhị phân với các hình chữ nhật xen kẽ của 0 và 1
  23. Tìm tất cả các phần tử chung có mặt trong mỗi hàng của ma trận đã cho
  24. Xây dựng cây nhị phân từ ma trận tổ tiên
  25. Tìm các phần tử phổ biến có trong tất cả các hàng của ma trận
  26. Tìm chỉ mục của hàng chứa số 1 tối đa trong ma trận nhị phân
  27. Tìm ma trận con vuông lớn nhất bao quanh bởi tất cả các số 1
  28. Tìm các đường chuyền tối thiểu cần thiết để chuyển đổi tất cả các giá trị âm trong ma trận
  29. In ma trận vuông xoắn ốc mà không cần sử dụng thêm khoảng trống
  30. In tất cả các tuyến đường ngắn nhất trong lưới hình chữ nhật
  31. Tìm độ dài đường đi dài nhất trong ma trận với các ký tự liên tiếp
  32. Thu thập giá trị tối đa của tiền xu trong một ma trận
  33. Hoạt cảnh trẻ. Chèn, Tìm kiếm, Giải nén-Min, Xóa, Thay thế
  34. Sắp xếp một mảng bằng Young tableau
  35. Tìm đường dẫn từ nguồn đến đích trong một ma trận thỏa mãn các ràng buộc đã cho
  36. Tạo danh sách các từ có thể từ ma trận ký tự
  37. Tìm xác suất để một người còn sống sau khi đi N bước trên đảo
  38. Thu thập điểm tối đa trong ma trận bằng cách thỏa mãn các ràng buộc đã cho
  39. Đếm số đường dẫn trong ma trận với chi phí đã cho để đến ô đích
  40. Tìm dãy dài nhất được tạo bởi các số liền kề trong ma trận
  41. Tìm chi phí tối thiểu để đến ô cuối cùng của ma trận từ ô đầu tiên của nó
  42. Các cách để đến góc dưới cùng bên phải của ma trận với chính xác k lượt được phép
  43. Phép nhân chuỗi ma trận
  44. Tìm kích thước của ma trận con vuông lớn nhất của 1 trong ma trận nhị phân đã cho
  45. Vấn đề Hiệp sĩ cờ vua - Tìm đường đi ngắn nhất từ ​​nguồn đến đích
  46. Tìm các hàng trùng lặp trong ma trận nhị phân
  47. In tất cả các giải pháp có thể có cho Bài toán N Queens
  48. In tất cả các chuyến đi của Hiệp sĩ có thể có trong bàn cờ
  49. Tìm đường đi ngắn nhất trong mê cung
  50. Tìm tuyến đường dài nhất có thể trong ma trận
  51. Tìm tổng số đường dẫn duy nhất trong mê cung từ nguồn đến đích
  52. Tính kích thước của cộng lớn nhất của 1 trong ma trận nhị phân
  53. Tìm giá trị lớn nhất của M[c][d] — M[a][b] trên tất cả các lựa chọn chỉ mục
  54. Tìm khoảng cách ngắn nhất của mọi ô từ mìn trong Mê cung
  55. Tìm tuyến đường ngắn nhất trong một thiết bị để tạo chuỗi đã cho
  56. Tính chi phí tối thiểu để đến thành phố đích từ thành phố nguồn
  57. Đếm tất cả các đường dẫn trong ma trận từ ô đầu tiên đến ô cuối cùng
  58. Gộp M danh sách đã sắp xếp, mỗi danh sách chứa N phần tử
  59. Vấn đề nhân viên bán hàng du lịch sử dụng Branch và Bound
câu đố
  1. Vấn đề về góc của đồng hồ - Tìm góc giữa kim giờ và kim phút
  2. Cộng hai số không dùng toán tử cộng
  3. Tạo tập hợp sức mạnh của một tập hợp nhất định
  4. Thực hiện chức năng lũy ​​thừa mà không cần sử dụng toán tử nhân và chia
  5. In tất cả các số từ 1 đến N mà không sử dụng dấu chấm phẩy
  6. Hoán đổi hai số mà không sử dụng biến thứ ba
  7. Xác định điều kiện if để in đầu ra cụ thể
  8. Tìm tối đa & tối thiểu của bộ ba mà không cần sử dụng câu lệnh điều kiện và toán tử bậc ba
  9. Tìm các số được biểu diễn dưới dạng tổng của hai lập phương cho hai cặp khác nhau
  10. In “Xin chào thế giới” với hàm main() trống
  11. Bài toán Tháp Hà Nội
  12. In tất cả các số từ 1 đến N mà không cần sử dụng bất kỳ vòng lặp nào
  13. In dấu chấm phẩy mà không cần sử dụng dấu chấm phẩy ở bất kỳ đâu trong chương trình
  14. Nhân hai số mà không sử dụng toán tử nhân hoặc vòng lặp
  15. Tìm bình phương của một số không dùng toán tử nhân chia
  16. Tìm xem một số là chẵn hay lẻ mà không cần sử dụng bất kỳ câu lệnh điều kiện nào
  17. Đặt cả hai phần tử của một mảng nhị phân thành 0 trong một dòng
  18. Tìm số nhỏ nhất mà không cần sử dụng câu lệnh điều kiện hoặc toán tử bậc ba
  19. Thực hiện Phép chia hai số không dùng toán tử chia (/)
  20. Tạo 0 và 1 với xác suất 75% và 25%
  21. Tạo các số ngẫu nhiên mong muốn với xác suất bằng nhau
  22. Trả về 0, 1 và 2 với Xác suất bằng nhau bằng hàm đã chỉ định
  23. Tạo kết quả hợp lý từ xu thiên vị
  24. Tạo các số từ 1 đến 7 với xác suất bằng nhau bằng chức năng được chỉ định
  25. Triển khai toán tử ternary mà không sử dụng biểu thức điều kiện
  26. Xác định xem hai số nguyên có bằng nhau không sử dụng toán tử so sánh và số học
  27. Trả về 0 và 1 với Xác suất bằng nhau bằng hàm đã chỉ định
  28. Tạo đầu vào ngẫu nhiên từ một mảng theo xác suất nhất định
  29. Tính phép chia mô đun mà không có phép chia và toán tử modulo
Xếp hàng
  1. Triển khai hàng đợi bằng Mảng/Danh sách — C, C++, Java, Python
  2. Triển khai hàng đợi bằng Danh sách liên kết
  3. Triển khai Stack bằng cấu trúc dữ liệu hàng đợi
  4. Triển khai hàng đợi bằng cấu trúc dữ liệu ngăn xếp
  5. In hiệu quả tất cả các nút giữa hai mức nhất định trong cây nhị phân
  6. Vấn đề Hiệp sĩ cờ vua - Tìm đường đi ngắn nhất từ ​​nguồn đến đích
  7. Con đường ngắn nhất trong mê cung. Thuật toán Lee
  8. Tìm tuyến đường an toàn ngắn nhất trong một lĩnh vực có cảm biến
  9. thuật toán lấp lũ
  10. Đếm số đảo
  11. Tìm đường đi ngắn nhất từ ​​nguồn đến đích trong một ma trận thỏa mãn các ràng buộc đã cho
  12. Tạo các số nhị phân từ 1 đến N
  13. Tính chiều cao của cây nhị phân
  14. Xóa cây nhị phân đã cho
  15. Trình tự cấp độ của cây nhị phân
  16. Trình duyệt xoắn ốc của cây nhị phân
  17. Trình duyệt thứ tự cấp đảo ngược của cây nhị phân
  18. In tất cả các nút của một cây nhị phân nhất định theo thứ tự cụ thể
  19. In chế độ xem bên trái của cây nhị phân
  20. Tìm nút tiếp theo cùng cấp với nút đã cho trong cây nhị phân
  21. Kiểm tra xem cây nhị phân đã cho có phải là cây nhị phân hoàn chỉnh hay không
  22. In đường chéo của cây nhị phân
  23. In các nút góc của mọi cấp độ trong cây nhị phân
  24. Đảo ngược cây nhị phân
  25. Tìm các đường chuyền tối thiểu cần thiết để chuyển đổi tất cả các giá trị âm trong ma trận
  26. Chuyển đổi cây nhị phân thành danh sách liên kết kép theo thứ tự xoắn ốc
  27. Kiểm tra xem cây nhị phân có phải là một đống nhỏ hay không
  28. Đảo ngược các mức thay thế của một cây nhị phân hoàn hảo
  29. Chuyển đổi cây tìm kiếm nhị phân thành một đống tối thiểu
  30. Bài toán con rắn và cái thang
  31. Tìm khoảng cách ngắn nhất của mọi ô từ mìn trong Mê cung
  32. Chuyển danh sách liên kết nhiều cấp thành danh sách liên kết đơn
  33. Thuật toán tìm kiếm theo chiều rộng đầu tiên (BFS)
  34. Kiểm tra xem đồ thị vô hướng có chu trình hay không
  35. Tìm đường dẫn chi phí tối đa trong biểu đồ từ nguồn đã cho đến đích
  36. Tổng số đường dẫn trong sơ đồ đã cho từ nguồn đã cho đến đích có chính xác m cạnh
  37. Đường dẫn chi phí thấp nhất trong sơ đồ đã cho từ nguồn đã cho đến đích có chính xác m cạnh
Sắp xếp
  1. Thuật toán sắp xếp chèn
  2. Thuật toán sắp xếp lựa chọn
  3. Thuật toán sắp xếp bong bóng
  4. Hợp nhất thuật toán sắp xếp
  5. Thuật toán sắp xếp hợp nhất lặp đi lặp lại (Sắp xếp hợp nhất từ ​​dưới lên)
  6. thuật toán sắp xếp nhanh
  7. Thực hiện lặp lại QuickSort
  8. Kết hợp QuickSort
  9. QuickSort sử dụng thuật toán cờ quốc gia Hà Lan
  10. QuickSort sử dụng sơ đồ phân vùng của Hoare
  11. Thuật toán sắp xếp đống
  12. Thuật toán giới thiệu
  13. Thuật toán sắp xếp hợp nhất bên ngoài
  14. thuật toán sắp xếp đếm
  15. Inversion Count của một mảng
  16. Sắp xếp một mảng bằng Young tableau
  17. Hợp nhất thuật toán sắp xếp cho danh sách liên kết đơn
  18. Các sự cố được giải quyết bằng cách sử dụng logic phân vùng của QuickSort
  19. Sắp xếp danh sách liên kết kép bằng Merge Sort
  20. Sắp xếp các phần tử theo tần suất và Chỉ mục của chúng
  21. Sắp xếp một mảng dựa trên thứ tự được xác định bởi một mảng khác
  22. Sắp xếp hiệu quả một mảng có nhiều giá trị trùng lặp
  23. Tìm số lớn nhất có thể từ tập hợp các số đã cho
  24. Tìm số lượng vượt trội cho từng phần tử của một mảng
  25. Tách các số nguyên dương và âm bằng cách sử dụng Sắp xếp hợp nhất
  26. Nhóm các đảo chữ cái lại với nhau từ danh sách các từ đã cho
Cây rơm
  1. Triển khai ngăn xếp bằng Mảng/Danh sách — C, C++, Java, Python
  2. Triển khai ngăn xếp bằng Danh sách được liên kết
  3. Kiểm tra xem biểu thức đã cho có phải là biểu thức cân bằng hay không
  4. Tìm dấu ngoặc đơn trùng lặp trong một biểu thức
  5. Đánh giá biểu thức hậu tố đã cho
  6. Giải mã dãy số đã cho để tạo số nhỏ nhất không lặp lại các chữ số
  7. Thiết kế ngăn xếp trả về phần tử tối thiểu trong thời gian không đổi
  8. Thiết kế ngăn xếp trả về phần tử tối thiểu mà không cần sử dụng ngăn xếp phụ trợ
  9. Hợp nhất các khoảng chồng chéo
  10. Chuỗi đảo ngược mà không sử dụng đệ quy
  11. Triển khai Stack bằng cấu trúc dữ liệu hàng đợi
  12. Triển khai hàng đợi bằng cấu trúc dữ liệu ngăn xếp
  13. Triển khai hai ngăn xếp trong một mảng
  14. Giải pháp đệ quy để sắp xếp ngăn xếp
  15. Tìm độ dài của dấu ngoặc đơn cân bằng dài nhất trong một chuỗi
  16. Đảo ngược chuỗi bằng cấu trúc dữ liệu ngăn xếp
  17. Tìm tất cả các phần tử trong một mảng lớn hơn tất cả các phần tử ở bên phải của chúng
  18. Duyệt cây theo thứ tự
  19. Đặt hàng trước Tree Travers
  20. Postorder Tree Traversal
  21. Tìm duyệt theo thứ tự trước của cây nhị phân từ trình tự thứ tự và thứ tự sau của nó
  22. Tìm tổ tiên của nút đã cho trong Cây nhị phân
  23. Kiểm tra xem hai cây nhị phân đã cho có giống nhau hay không
  24. Trình duyệt thứ tự cấp đảo ngược của cây nhị phân
  25. Đảo ngược văn bản đã cho mà không đảo ngược các từ riêng lẻ
  26. Tìm tất cả các chuỗi nhị phân có thể được hình thành từ mẫu ký tự đại diện đã cho
  27. Thực hiện lặp lại QuickSort
  28. Thuật toán tìm kiếm theo chiều sâu (DFS)
  29. Đảo ngược cây nhị phân
  30. In đường dẫn lá tới gốc cho mọi nút lá trong cây nhị phân
  31. Dãy con tăng dài nhất
  32. Đảo ngược các mức thay thế của một cây nhị phân hoàn hảo
Chuỗi
  1. Kiểm tra xem chuỗi đã cho có phải là một bảng màu xoay hay không
  2. Chuỗi con Palindromic dài nhất (Giải pháp tối ưu hóa không gian không phải DP)
  3. Kiểm tra xem chuỗi con lặp lại có xuất hiện trong chuỗi hay không
  4. Kiểm tra xem các chuỗi có thể được bắt nguồn từ nhau hay không bằng cách xoay tròn chúng
  5. Kiểm tra xem tập hợp các bước di chuyển đã cho có phải là hình tròn hay không
  6. Chuyển đổi số đã cho thành tên cột excel tương ứng
  7. Xác định xem hai chuỗi có đảo chữ cái hay không
  8. Tìm tất cả các chuỗi nhị phân có thể được hình thành từ mẫu ký tự đại diện đã cho
  9. Tìm tất cả các xen kẽ của các chuỗi đã cho
  10. chuỗi đẳng cấu
  11. Tìm tất cả các chuỗi con palindromic có thể có trong một chuỗi
  12. Tìm tất cả các tổ hợp từ có thể được hình thành từ bàn phím di động
  13. Tìm tất cả các kết hợp có thể bằng cách thay thế các chữ số đã cho bằng các ký tự của danh sách tương ứng
  14. Tìm tất cả các từ trong danh sách đã cho theo cùng thứ tự các ký tự như mẫu đã cho
  15. Nhóm các đảo chữ cái lại với nhau từ danh sách các từ đã cho
  16. Tìm các hoạt động tối thiểu cần thiết để chuyển đổi một chuỗi thành một chuỗi khác
  17. Xác định xem một chuỗi có thể được chuyển đổi thành một chuỗi khác chỉ bằng một lần chỉnh sửa hay không
  18. Tìm độ dài của dấu ngoặc đơn cân bằng dài nhất trong một chuỗi
  19. Tại chỗ, xóa tất cả các lần xuất hiện của 'AB' và 'C' khỏi chuỗi
  20. Xâu con tổng palindrome có độ dài chẵn dài nhất
  21. In chuỗi ở dạng zig-zag trong k hàng
  22. Đảo ngược văn bản đã cho mà không đảo ngược các từ riêng lẻ
  23. Thuật toán nén dữ liệu mã hóa độ dài chạy (RLE)
  24. Tìm xâu con dài nhất của xâu đã cho chứa k kí tự phân biệt
  25. Tìm tất cả các hoán vị palindromic của một chuỗi
  26. Tìm tất cả các chuỗi con của một chuỗi là hoán vị của một chuỗi đã cho
  27. Tìm chuỗi con dài nhất của chuỗi đã cho chứa tất cả các ký tự riêng biệt
  28. Phương pháp lặp để tìm hoán vị của chuỗi
  29. Tạo tất cả các hoán vị của một chuỗi trong Java
  30. Tìm tất cả các hoán vị tiếp theo theo từ điển của một chuỗi được sắp xếp theo thứ tự tăng dần
  31. Tìm xoay chuỗi tối thiểu theo từ điển
  32. Tìm tất cả các chuỗi có độ dài nhất định có chứa dấu ngoặc đơn cân đối
  33. Tìm tất cả các kết hợp của các chuỗi con không chồng chéo của một chuỗi
  34. Xác định xem một chuỗi đã cho có phải là palindrome hay không
  35. Tìm số phép nghịch đảo ít nhất cần thiết để biểu thức đã cho cân bằng
  36. Xây dựng bảng màu dài nhất bằng cách xáo trộn hoặc xóa các ký tự khỏi chuỗi
  37. In tất cả các tổ hợp cụm từ được hình thành bằng cách chọn các từ từ mỗi danh sách đã cho
  38. Chia một chuỗi thành tất cả các kết hợp có thể có của các chuỗi con không trùng nhau
  39. Xóa tất cả khoảng trắng thừa khỏi chuỗi
  40. Xóa các ký tự trùng lặp liền kề khỏi một chuỗi
  41. Tìm ký tự không lặp lại đầu tiên trong một chuỗi bằng cách chỉ thực hiện một lần duyệt của nó
  42. Tìm tất cả các số tăng dần có N chữ số (Phương pháp tiếp cận từ dưới lên và từ trên xuống)
  43. Tìm tất cả các số nhị phân có N chữ số có nhiều hơn 1 số 0 cho bất kỳ tiền tố nào
  44. Tìm tất cả các số có N chữ số có tổng các chữ số cho trước
  45. Tìm tất cả các số nhị phân có N chữ số với k-bit được đặt trong đó k nằm trong khoảng từ 1 đến N
  46. Tìm tất cả các số nhị phân có N chữ số có tổng số bit bằng nhau trong hai nửa của nó
  47. Tìm tất cả các số có N chữ số có tổng các chữ số bằng nhau ở chỉ số chẵn và lẻ
  48. Tìm tất cả các hoán vị từ điển của một chuỗi
  49. Xếp hạng từ điển của một chuỗi
  50. Tìm tất cả các hoán vị trước đó theo từ điển của một chuỗi được sắp xếp theo thứ tự giảm dần
  51. Thay thế tất cả các lần xuất hiện không chồng chéo của mẫu
  52. Giới thiệu về Khớp mẫu
  53. Triển khai thuật toán KMP
  54. Chuỗi đảo ngược mà không sử dụng đệ quy
  55. Đảo ngược chuỗi đã cho bằng cách sử dụng Đệ quy
  56. Xác định xem các ký tự của Chuỗi có tuân theo một thứ tự đã chỉ định hay không
  57. Xóa tại chỗ tất cả các bản sao liền kề khỏi chuỗi đã cho
  58. Kiểm tra xem câu đã cho có đúng cú pháp hay không
  59. Tìm tất cả các hoán vị của một chuỗi đã cho
  60. Tìm k ký tự không lặp lại đầu tiên trong một chuỗi trong một lần duyệt
  61. Kiểm tra xem chuỗi đã cho có xen kẽ của hai chuỗi đã cho khác không
  62. Giải mã dãy số đã cho để tạo số nhỏ nhất không lặp lại các chữ số
  63. Sự kết hợp của các từ được hình thành bằng cách thay thế các số đã cho bằng các bảng chữ cái tương ứng
  64. Đếm số lần một mẫu xuất hiện trong chuỗi đã cho dưới dạng một chuỗi con
  65. Kiểm tra xem một chuỗi có khớp với mẫu ký tự đại diện đã cho không
  66. Tìm tất cả các từ phù hợp với một mẫu trong từ điển nhất định
  67. Bài toán Khoảng cách Levenshtein (Chỉnh sửa Khoảng cách)
  68. Bài toán dãy con chung dài nhất
  69. Bài toán dãy con lặp lại dài nhất
  70. Dãy con Palindromic dài nhất sử dụng Quy hoạch động
  71. Bài toán chuỗi con chung dài nhất
  72. Bài toán siêu dãy chung ngắn nhất
  73. Lời Break vấn đề
  74. Kết hợp mẫu ký tự đại diện
  75. Tìm các vết cắt tối thiểu cần thiết cho phân vùng palindromic của một chuỗi
  76. Kiểm tra xem một chuỗi có phải là K-Palindrome hay không
  77. Tìm tuyến đường ngắn nhất trong một thiết bị để tạo chuỗi đã cho
  78. Tìm số tối thiểu có thể bằng cách thực hiện nhiều nhất K hoán đổi
  79. Xác định xem một mẫu có khớp với một chuỗi hay không
  80. Tìm số lần xóa tối thiểu cần thiết để chuyển đổi một chuỗi thành palindrome
Trie
  1. Trie Triển khai — C, C++, Java, Python
  2. Bộ nhớ Triển khai Trie hiệu quả. Chèn, Tìm kiếm và Xóa
  3. Tiền tố chung dài nhất trong tập hợp các chuỗi đã cho (sử dụng Trie)
  4. Sắp xếp từ điển của bộ khóa đã cho
  5. Tìm từ xuất hiện tối đa trong tập hợp các chuỗi đã cho
  6. Tìm k từ xuất hiện tối đa đầu tiên trong tập hợp các chuỗi đã cho
  7. Tìm các hàng trùng lặp trong ma trận nhị phân
  8. Lời Break vấn đề. Sử dụng Trie
  9. Tạo danh sách các từ có thể từ ma trận ký tự
  10. Tìm tất cả các từ phù hợp với một mẫu trong từ điển nhất định

Tôi có thể thực hành cấu trúc dữ liệu và thuật toán trong Python ở đâu?

6 Khóa học tốt nhất để học cấu trúc dữ liệu và thuật toán với Python năm 2022 .
Python cho cấu trúc dữ liệu, thuật toán và phỏng vấn. .
Thuật toán và cấu trúc dữ liệu trong Python [Khóa học tốt nhất của Udemy].
LeetCode trong Python. 50 câu hỏi phỏng vấn viết mã thuật toán. .
Cấu trúc dữ liệu cho các cuộc phỏng vấn viết mã trong Python [Giáo dục]

Python có tốt cho cấu trúc dữ liệu và thuật toán không?

Cấu trúc dữ liệu là nguyên tắc cơ bản của bất kỳ ngôn ngữ lập trình nào mà chương trình được xây dựng xung quanh đó. Python giúp tìm hiểu kiến ​​thức cơ bản của các cấu trúc dữ liệu này theo cách đơn giản hơn so với các ngôn ngữ lập trình khác .

Tôi có thể thực hành cấu trúc dữ liệu và giải thuật ở đâu?

Ngăn xếp và hàng đợi .
Tài nguyên. chuyên viên máy tính. org - Cấu trúc dữ liệu ngăn xếp. chuyên viên máy tính. org - Giới thiệu và triển khai mảng. hướng dẫn. com - Giải thuật cấu trúc dữ liệu. cs. cmu. edu - Ngăn xếp. .
vấn đề thực hành. spoj. com - JNEXT. spoj. com - STPAR. spoj. com - ONP. đầu bếp viết mã. com - MÁY TÍNH

Tôi có thể học DSA trong 3 tháng không?

Tùy thuộc vào cách học của từng cá nhân. Thông thường, phải mất 2-3 tháng để học những kiến ​​thức cơ bản và sau đó là 6 tháng thực hành nghiêm túc các câu hỏi thường xuyên để nắm vững cấu trúc dữ liệu và thuật toán.