Hiểu Rõ Sự Khác Biệt Giữa Shallow Copy và Deep Copy trong Python
Trong Python, khi làm việc với các cấu trúc dữ liệu phức tạp, việc sao chép (copy) có thể dẫn đến những kết quả không như mong đợi nếu không hiểu rõ về hai khái niệm: Shallow Copy (sao chép nông) và Deep Copy (sao chép sâu). Hiểu rõ sự khác biệt giữa chúng là cực kỳ quan trọng để tránh các lỗi tiềm ẩn và quản lý bộ nhớ hiệu quả.
Shallow Copy (S ...
Đăng vào ngày 23 tháng 5 lúc 21:09
Cấu trúc dữ liệu ngăn xếp và hàng đợi trong C
Ngăn xếp và hàng đợi là hai cấu trúc tuyến tính đặc biệt, khác với danh sách thông thường cho phép chèn/xóa tại bất kỳ vị trí nào, cả hai chỉ cho phép thao tác tại các đầu cố định.
Ngăn xếp (Stack) tuân theo nguyên tắc FIFO ngược — LIFO (Last In, First Out): phần tử được thêm vào cuối cùng sẽ được lấy ra đầu tiên. Trong một ngăn xếp:
Đỉnh ...
Đăng vào ngày 22 tháng 5 lúc 09:38
Kỳ thi Lập trình Viên Mới ABC394: Phân tích Bài Giải
Bài A: Lọc Ký Tự 2
Yêu cầu: Cho chuỗi ký tự đầu vào, in ra chuỗi chỉ chứa các ký tự số 2
Giải pháp:
Xem mã nguồn
#include <iostream>
#include <string>
using namespace std;
int main() {
string str;
cin >> str;
string result;
for(char c : str) {
if(c == '2') result += c;
}
cout << result;
...
Đăng vào ngày 20 tháng 5 lúc 10:03
Giới thiệu về cây Chủ tịch (Chairman Tree)
Tôi ghét các cấu trúc dữ liệu khó hiểu! Huhu.
Giới thiệu vấn đề
Cho một dãy số nguyên dương có độ dài \(n\), thực hiện \(q\) truy vấn, mỗi truy vấn yêu cầu tìm giá trị của phần tử nhỏ thứ \(k\) trong đoạn \([l,r]\) của dãy.
Nếu \(n,q \le 10^3\), đây chỉ là bài toán đơn giản cần duyệt toàn bộ; nhưng khi \(n,q \le 10^5\), phương pháp duyệt sẽ khô ...
Đăng vào ngày 19 tháng 5 lúc 16:26
Giải quyết các bài toán thuật toán phổ biến bằng kỹ thuật Hai con trỏ
Kỹ thuật hai con trỏ (Two-Pointer) là một trong những phương pháp tối ưu nhất để xử lý các bài toán trên mảng hoặc chuỗi. Thay vì sử dụng các vòng lặp lồng nhau gây tốn kém về thời gian (O(n²)), hai con trỏ giúp đưa độ phức tạp về O(n). Dưới đây là cách áp dụng kỹ thuật này vào các bài toán thực tế.
1. Loại bỏ phần tử (LeetCode 27)
Bài toán yê ...
Đăng vào ngày 17 tháng 5 lúc 21:51