Xóa một nút khỏi Cây Tìm kiếm Nhị phân
Các đặc tính của Cây Tìm kiếm Nhị phân
Có ba đặc tính quan trọng của Cây Tìm kiếm Nhị phân (BST) mà bạn nên nắm vững:
1. Duyệt trung thứ tự (In-order traversal) tạo ra một dãy số đã sắp xếp. Thứ tự duyệt: `Con trái -> Nút gốc -> Con phải`.
public LinkedList<Integer> duyetTrungThuTu(TreeNode node, LinkedList<Integer> danhSac ...
Đăng vào ngày 4 tháng 6 lúc 19:40
Các bài toán xử lý chuỗi: Đảo ngược, Thay thế và Xoay chuỗi
1. Đảo ngược chuỗi ký tự
Mô tả bài toán: Viết một hàm để đảo ngược một chuỗi ký tự. Chuỗi đầu vào được cho dưới dạng một mảng ký tự `s`. Bạn phải sửa đổi mảng đầu vào tại chỗ, không được cấp phát thêm không gian cho một mảng khác và sử dụng không gian phụ trợ O(1).
Phương pháp giải: Sử dụng kỹ thuật hai con trỏ, một con trỏ bắt đầu từ đầu chuỗi ...
Đăng vào ngày 4 tháng 6 lúc 18:59
Hướng dẫn các thuật toán STL trong C++
1. Các thuật toán không thay đổi chuỗi
Các thuật toán này không làm thay đổi các phần tử trong container mà chúng thao tác.
1.1 find và find_if
find(begin, end, value): Tìm phần tử đầu tiên bằng với value, trả về iterator (trả về end nếu không tìm thấy).
find_if(begin, end, predicate): Tìm phần tử đầu tiên thỏa mãn một điều kiện nhất định (pr ...
Đăng vào ngày 3 tháng 6 lúc 21:13
Mô hình học ít mẫu mới: Tối ưu hóa giải thuật LeetCode
Dự án LeetCode87: Học thuật toán hiệu quả qua ít mẫu
Dự án LeetCode87 là một kho giải pháp thuật toán đa ngôn ngữ, bao gồm các bài toán từ LeetCode, "Kiến thức Cơ bản Lập trình" (剑指 Offer) và "Cẩm nang Phỏng vấn Lập trình viên" (The Art of Programming). Cấu trúc dự án được tổ chức rõ ràng theo loại bài toán và độ khó, giúp người học tiếp cận ...
Đăng vào ngày 3 tháng 6 lúc 04:28
Triển khai Tìm kiếm Nhị phân và Ứng dụng trong Thư viện STL Tiêu chuẩn
Trong các bài toán lập trình, thao tác tìm kiếm xuất hiện thường xuyên. Nếu sử dụng phương pháp tìm kiếm lực lượng (brute-force) với lượng dữ liệu lớn, chương trình sẽ gặp vấn đề về thời gian thực thi (ví dụ: với quy mô (10^5) thì độ phức tạp (O(n^2)) thường vượt quá thời gian cho phép, trong khi (O(nlogn)) thường chấp nhận được). Vì vậy, tìm k ...
Đăng vào ngày 1 tháng 6 lúc 23:28
Tổng hợp thuật toán STL C++ (Phần 1)
1. Thuật toán không thay đổi dãy
Các thuật toán này không làm thay đổi các phần tử trong container mà chúng thao tác.
1.1 find và find_if
find(begin, end, value): Tìm phần tử đầu tiên bằng value, trả về iterator (trả về
end nếu không tìm thấy).
find_if(begin, end, predicate): Tìm phần tử đầu tiên thỏa mãn predicate.
find_end(begin, end, sub ...
Đăng vào ngày 1 tháng 6 lúc 22:58
Giải bài toán ba lô 0-1 bằng quy hoạch động
Bài toán ba lô 0-1 là một bài toán tối ưu hóa tổ hợp kinh điển. Nó được phát biểu như sau: cho một tập hợp các vật phẩm, mỗi vật phẩm có một trọng lượng và một giá trị nhất định. Với một chiếc ba lô có sức chứa tối đa là W, làm thế nào để chọn ra các vật phẩm sao cho tổng giá trị của chúng là lớn nhất mà không vượt quá sức chứa của ba lô. Tên g ...
Đăng vào ngày 31 tháng 5 lúc 14:33
Bài thực hành số 3
Hoạt động 1:
1 #include <stdio.h>
2
3 char convert_score_to_grade(int point);
4
5 int main() {
6 int point;
7 char level;
8 while(scanf("%d", &point) != EOF) {
9 level = convert_score_to_grade(point);
10 printf("Điểm: %d, Xếp loại: %c\n\n", point, level);
11 }
12 ret ...
Đăng vào ngày 30 tháng 5 lúc 11:12
Cơ sở cấu trúc dữ liệu và thuật toán
Cơ sở cấu trúc dữ liệu và thuật toán
Mục lục- Cơ sở cấu trúc dữ liệu và thuật toán
Khoa học máy tính là gì?
Cách hiểu trực quan về thuật toán và ý nghĩa
Phân tích thuật toán là gì?
Tiêu chí đánh giá chương trình
Độ phức tạp thời gian biểu thức Big O T(n)=O(f(n))
Cấu trúc dữ liệu
Phân tích hiệu năng cấu trúc dữ liệu trong Python
Khoa học máy t ...
Đăng vào ngày 28 tháng 5 lúc 19:33
Lập trình động với C++
Giới thiệu về Lập trình động
Lập trình động (tiếng Anh: Dynamic programming, viết tắt là DP) là một phương pháp giải quyết các vấn đề phức tạp bằng cách chia nhỏ chúng thành các vấn đề con đơn giản hơn. Phương pháp này thường được áp dụng trong toán học, khoa học quản lý, khoa học máy tính, kinh tế học và sinh tin học. Lập trình động đặc biệt ...
Đăng vào ngày 28 tháng 5 lúc 06:03