An algorithm for maintaining a running aggregate over a sliding window using two stacks is explained, offering amortized O(1) performance for any associative combine operation, not just invertible ones like sums. The technique generalizes to minimum, quantiles, approximate unique counts (HyperLogLog), and more by abstracting aggregation into empty, unit, combine, and finalize functions. The author traces the algorithm's folklore origins to a 2011 Stack Overflow post crediting a 2001 lecture on amortized two-stack FIFO queues, walks through a worked example summing a window of four elements, and explains why the approach also mitigates floating-point error accumulation since each aggregate only ever combines values currently inside the window.
Source: https://orlp.net/blog/two-stack-sliding-window-aggregation. 8 Sync News only summarizes and links out; content copyright belongs to the authors and original sources.
Đang tải bình luận…
Một chuyên gia công nghệ với 20 năm kinh nghiệm lập luận rằng danh xưng "Full-Stack Developer" đang trở nên hạn chế, thay vào đó đề xuất khái niệm "Feature Expert" (Chuyên gia Tính năng). Giá trị cốt lõi không nằm ở ngôn ngữ hay framework mà ở khả năng nhận diện các mẫu vấn đề lặp đi lặp lại (tính toán giá, tối ưu tìm kiếm, caching) và giải quyết chúng bất kể tech stack. Bài viết khuyên các lập trình viên trình độ trung cấp nên tập trung vào cấu trúc dữ liệu và xây dựng kho kiến thức các vấn đề đã giải quyết thay vì tích lũy ngôn ngữ.
Là người muốn nâng cao hiệu quả làm việc và chuyên sâu trong các vấn đề thực tế như tính toán giá, tối ưu tìm kiếm hay quản lý bộ nhớ, bài viết này giúp bạn chuyển từ kiến thức kỹ thuật sang tư duy giải quyết vấn đề xuyên suốt các ngôn ngữ và công nghệ.
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 chuỗi đối xứng (palindrome), sử dụng kỹ thuật hai con trỏ (two pointers) và tối ưu hóa giải pháp thực tế.
Những kỹ thuật và ví dụ về xử lý chuỗi trong JavaScript này sẽ giúp bạn giải quyết các vấn đề thực tế trong interview và dự án, từ đó nâng cao khả năng tư duy logic và hiệu suất lập trình của bạn.
Bài viết cung cấp bộ quiz kiểm tra khả năng tư duy đệ quy trong Python, bao gồm các khái niệm như base cases, cấu trúc dữ liệu đệ quy, duy trì trạng thái và caching kết quả. Các bài tập được thiết kế giúp lập trình viên nắm vững cách tiếp cận vấn đề thông qua hàm tự gọi chính nó. Bạn sẽ được làm việc với các ví dụ thực tế như Fibonacci và tree traversal để hiểu cách tối ưu hóa performance bằng memoization. Bộ quiz này hữu ích cho ai muốn củng cố kiến thức về đệ quy - một kỹ thuật nền tảng trong giải thuật và cấu trúc dữ liệu.
Bài kiểm tra này giúp củng cố kỹ năng tư duy đệ quy của bạn qua các bài tập thực tế về base case, cấu trúc dữ liệu đệ quy, duy trì trạng thái và caching kết quả.
Instagram có hơn 500 triệu tên đăng ký và cần trả lời ngay khi người dùng mới đăng ký xem tên đó đã được sử dụng chưa. Cách naïve là tra cứu trong bảng băm hoặc cơ sở dữ liệuExact, nhưng khi dữ liệu đạt hàng trăm triệu bản ghi thì thời gian truy cập và bộ nhớ cần thiết trở thành bottleneck. Bằng cách áp dụng Bloom filter – cấu trúc xác suất với mảng bit và một số hàm băm – hệ thống có thể trả lời câu hỏi trong thời gian hằng số với bộ nhớ chỉ vài megabyte, dù có khả năng trả về kết quả dương giả (false positive) nhỏ. Điều đáng học là Bloom filter cho đổi lấy một xác suất sai nhỏ để đạt tốc độ và hiệu quả bộ nhớ cao, vì vậy trong các hệ thống quy mô lớn thường kết hợp nó với bước kiểm tra lại chính xác để loại bỏ lỗi dương giả. Ví dụ cụ thể, Instagram, Google và nhiều dịch vụ cao tải sử dụng cấu trúc này để giảm latency trong các thao tác kiểm tra thành viên như username, từ chối spam hoặc truy cập cache.
Bloom Filters giúp bạn hiểu cách các hệ thống quy mô lớn như Instagram giải quyết bài toán kiểm trùng dữ liệu hiệu quả.
C++26 giới thiệu std::hive như một container giải quyết vấn đề quản lý entity trong game engine với hàng nghius đối tượng. Nguyên nhân kỹ thuật là std::vector làm invalid pointer khi xóa phần tử, còn std::list dù giữ pointer nhưng kém hiệu suất cache. Hệ quả là std::hive cung cấp pointer và iterator ổn định trước khi xóa/xen vào, với thời gian O(1) cho phép thêm/xóa và hiệu suất cache tốt nhờ bộ nhớ liền kề. Điểm đáng học là std::hive giải quyết triệt để xung đột giữa ổn định pointer và hiệu năng mà trước đây phải đánh đổi.
std::hive trong C++26 mang lại giải pháp lưu trữ lý tưởng cho hệ thống cần con trỏ ổn định và hiệu suất cao khi xóa/thêm phần tử.
Bài viết giới thiệu Sing-song, một phương pháp mã hóa các số dài (như hex 51ac0759fc4d) thành chuỗi ký tự dễ đọc, dễ nhớ (như kalo-tadu-komu-tigi) bằng cách kết hợp các âm tiết có nghĩa.
Lập trình viên nên đọc bài này để tìm hiểu cách chuyển đổi các chuỗi số dài hoặc mã hóa thành các mẫu âm nhạc dễ nhớ, giúp cải thiện hiệu suất trong việc lưu trữ, chia sẻ và quản lý thông tin phức tạp trong các ứng dụng.
Bối cảnh bài viết cung cấp bảng tra cứu độ phức tạp thời gian quan trọng khi bắt đầu competitive programming. Nguyên nhân kỹ thuật là để lập trình viên hiểu rõ cách đánh giá độ phức tạp các thuật toán như O(n), O(log n), O(n^2). Hệ quả là giúp tối ưu hiệu suất code khi tham gia đấu tranh thuật toán. Điều đáng học là bảng tra cứu này liệt kê các độ phức tạp phổ biến như O(1), O(n log n), O(2^n) để bạn lựa chọn giải pháp tối ưu.
Bài viết này giúp lập trình viên nắm vững các độ phức tạp thời gian để tối ưu hiệu suất thuật toán trong lập trình cạnh tranh.
Khi chuẩn bị cho coding interviews, việc chọn ngôn ngữ lập trình phù hợp ảnh hưởng lớn đến hiệu suất. Nhiều ứng viên ưu tiên Python do cú pháp ngắn gọn và thư viện mạnh mẽ, giúp giải quyết bài toán nhanh hơn. Tuy nhiên, Java và C++ vẫn được đánh giá cao nhờ khả năng quản lý bộ nhớ và hiệu suất tối ưu trong các bài toán phức tạp. Trọng tâm không nằm ở ngôn ngữ bạn chọn mà là sự thành thạo và khả năng trình bày tư duy giải quyết vấn đề rõ ràng.
Bài viết này giúp lập trình viên lựa chọn ngôn ngữ lập trình phù hợp nhất cho các phỏng vấn coding dựa trên ưu và nhược điểm của từng ngôn ngữ.
Read the news here, practice coding, follow structured courses and train for IELTS on our sibling products — all connected through one 8 Sync account.
The ecosystem home: product overviews, blog and full pricing.
ExploreLearn along a clear roadmap: videos, auto-graded quizzes, certificates and mentors who ship for a living.
View the roadmap1,000+ DSA problems in Vietnamese, auto-graded across 7 languages — many FREE, right in your browser.
Practice for freeAI grading for all four IELTS skills with detailed rubric feedback.
Try it freeA 22 MB AI IDE for Vietnamese devs.
Download freeOrganizational memory for AI agents.
ExploreAI that staffs your Fanpage and qualifies leads for you.
Try it