Cậu con trai 2 tuổi của tác giả đã dùng bộ đồ chơi xe lửa gỗ Brio để giải thích khái niệm "constraint solving" (giải quyết ràng buộc) cho bố.
Vì sao nên đọc: Một lập trình viên nên đọc bài này để hiểu cách giải quyết vấn đề giải quyết ràng buộc thông qua ví dụ đơn giản, minh họa hiệu quả cách tư duy logic và giải quyết vấn đề từ góc nhìn thực tế, giúp cải thiện kỹ năng lập trình và tư duy hệ thống.
Trả lời 3 câu hỏi ngắn để nhận điểm thưởng cho bài này. Chỉ làm khi bạn muốn lấy điểm.
3 câu hỏi · dưới một phút · không bắt buộc
Nguồn: https://thecomputersciencebook.com/posts/how-my-2yo-taught-me-constraint-solving. 8sync News chỉ tóm tắt và dẫn link; bản quyền nội dung thuộc tác giả và nguồn gốc.
Đọc tin ở đây, luyện code, học theo lộ trình và luyện IELTS trên các sản phẩm anh em — tất cả kết nối với nhau trong hệ sinh thái 8 Sync Dev.
Cổng chính của hệ sinh thái: giới thiệu sản phẩm, blog và bảng giá trọn bộ.
Khám pháHọc theo lộ trình rõ từng chặng: video, quiz chấm tự động, certificate và mentor đang làm nghề.
Xem lộ trìnhHơn 600 bài FREE, đề tiếng Việt, chấm tự động 7 ngôn ngữ — chạy ngay trên trình duyệt.
Tìm hiểu các thuật toán xử lý chuỗi JavaScript phổ biến như đảo ngược chuỗi, phát hiện …
AI cho doanh nghiệp B2B: chat đa kênh AI phản hồi, gom lead tiềm năng, phân loại khách hàng.
Sắp ra mắtKhái niệm độ phức tạp thời gian (time complexities) rất quan trọng trong lập trình thi đấu. Nếu chưa nắm vững cách xác định độ phức tạp của thuật toán, bạn sẽ gặp khó khăn trong việc lựa chọn giải pháp tối ưu.
Lập trình viên cần tham khảo bảng so sánh thời gian chạy của các thuật toán để tối ưu hóa hiệu suất trong các vấn đề đòi hỏi tính chính xác và hiệu suất cao, đặc biệt là trong các cuộc thi lập trình.
Bài tập hôm nay trong series #MasterDSA sử dụng kỹ thuật hai con trỏ (two pointers) để di chuyển tất cả các số 0 về cuối mảng mà không thay đổi thứ tự tương đối của các phần tử khác.
Lập trình viên nên đọc bài này để hiểu cách áp dụng hai con trỏ hiệu quả trong việc xử lý vấn đề không cần sắp xếp, giúp tối ưu hóa thời gian và không gian khi giải quyết các vấn đề như di chuyển các phần tử không cần thiết trong mảng.
Bài viết khuyên rằng không cần luyện 300 bài LeetCode cho phỏng vấn mobile, thay vào đó nên tập trung vào các mock interview thực tế và phản hồi cá nhân hóa về iOS, Swift, Android và kỹ thuật.
Nếu bạn đang chuẩn bị cho cuộc phỏng vấn kỹ thuật cho vị trí lập trình viên mobile, bài viết này sẽ giúp bạn tiết kiệm thời gian và hiệu quả hơn bằng cách tập trung vào các kỹ năng thực tế của iOS/Swift và Android mà các nhà tuyển dụng thực sự quan tâm.
Bài viết giới thiệu về PGS. Bailey Flanigan tại MIT, tập trung vào nghiên cứu của cô về các phương pháp tính toán phức tạp nhằm thúc đẩy nền dân chủ phát triển.
Đọc bài này để hiểu cách các phương pháp tính toán tiên tiến có thể giải quyết những thách thức thực tế trong việc cải thiện và bảo vệ hệ thống dân chủ thông qua các giải pháp khoa học dữ liệu và công nghệ.
Tìm hiệu tuyệt đối lớn nhất giữa hai subarray không chồng lấn trong mảng bằng cách sử dụng thuật toán Kadane's và bốn mảng phụ, với độ phức tạp O(n).
Lập trình viên nên đọc bài này để tìm hiểu cách tối ưu giải quyết vấn đề tìm giá trị lớn nhất của hiệu tuyệt đối giữa hai đoạn mảng không chồng chéo trong thời gian O(n) bằng cách áp dụng thuật toán Kadane và các mảng trợ giúp, giúp nâng cao hiệu suất cho các trường hợp xử lý dữ liệu lớn.
MIT professor and Gödel Prize winner Ryan Williams discusses computational complexity theory in an interview that starts with the classic 3SUM LeetCode problem. He explains the O(N²) two-pointer solution and then describes how algorithms beating N² work via group-based finger search with preprocessing. The conversation covers fine-grained complexity theory, reductions between problems like Subset Sum and 2SUM, the Strong Exponential Time Hypothesis (SETH) and why Williams personally doubts it, hot takes on P vs NP (80% confidence they differ), EXP vs NEXP, and NEXP vs coNEXP. Williams also explains his breakthrough result showing any time-T algorithm can be simulated in space √T, building on Cook and Mertz's tree evaluation work using XOR-based memory tricks instead of write-to-blank-only approaches.
An introductory exploration of Doubly Linked Lists in Java, covering the node structure with prev and next references, advantages over Singly Linked Lists (bidirectional traversal), limitations (extra memory, two-pointer updates), and time/space complexity. Written as a learning journal entry by a beginner studying DSA.