Grokking Newsletter

By Grokking Vietnam

Cảm ơn bạn đã dành thời gian đọc newsletter kỳ này và chúng tôi hi vọng rằng bạn đã khám phá ra một số điều mới mẻ từ các bài viết trên. Các bạn có thể đọc lại các số cũ tại website newsletter.grokking.org

Cảm ơn bạn đã dành thời gian đọc newsletter kỳ này và chúng tôi hi vọng rằng bạn đã khám phá ra một số điều mới mẻ từ các bài viết trên. Các bạn có thể đọc lại các số cũ tại website newsletter.grokking.org

By subscribing, you agree with Revue’s Terms of Service and Privacy Policy and understand that Grokking Newsletter will receive your email address.

10K

subscribers

233

issues

#233・

#230 - Tìm hiểu về WebRTC và cơ chế peer to peer networking

Đề ra tuần này: Find Root of N-Ary Tree(by phucnh)Cho một N-ary tree được biểu diễn bởi một list của các nút, ta có giá trị của các nút là duy nhất. Hãy trả về nút gốc của N-ary tree.Lời giải đề bài tuần trước: Minimum Knight Moves(by ndaadn)Đề bài yêu cầu tì…

 
#232・

#229 - Hệ thống authorization ở Netflix

Đề ra tuần này: Minimum Knight Moves(by ndaadn)Cho một bàn cờ vua rộng vô hạn, và quân mã tại toạ độ [0, 0]. Quân mã có thể di chuyển tới một trong 8 vị trí tiếp theo trên bàn cờ. Hãy tìm số lần di chuyển nhỏ nhất để quân mã tới được toạ độ [x, y].Lời giải đề…

 
#231・

#228 - Tìm hiểu về mô hình Data Platform hiện đại

Đề ra tuần này: Possible Bipartition(by ndaadn)Cho trước một nhóm gồm n người từ 1 đến n và một mảng dislike bao gồm các cặp số [a,b] thể hiện người a ghét người b. Xác định xem có thể chia nhóm n người này thành 2 nhóm sao cho trong 2 nhóm này không có ai gh…

 
#230・

#227 - Thiết kế retry consumer cho Kafka

Đề ra tuần này: Max Consecutive Ones III(by ndaadn)Cho một chuỗi nhị phân và một số k, bạn được phép đổi nhiều nhất k số 0 thành số 1. Hãy trả lại độ dài lớn nhất của chuỗi số 1 liên tiếp mà bạn có thể tạo được.Ví dụ:Input: nums = [1,1,1,0,0,0,1,1,1,1,0], k =…

 
#229・

#226 - Giải pháp Cache Invalidation tại Facebook

Đề ra tuần này: Making File Names Unique(by ndaadn)Khi tạo một thư mục mới, nếu tên thư mục trùng với tên thư mục hiện có, hệ thống sẽ tự động đổi tên thư mục thành dạng <tên thư mục>(số thứ tự tiếp theo).Ví dụ:Thư mục hiện có: “gta”Thư mục được tạo: “g…

 
#228・

#225 - Xây dựng kiến trúc Event-Driven với Kafka, Spark, và Cassandra

Đề ra tuần này: Verify Preorder Serialization of a Binary TreeMột trong những cách để lưu cây nhị phân vào file là ta tiến hành ghi kết quả của việc duyệt cây theo thứ tự trước (preorder traversal), với những nút là null, ta ghi giá trị "#".Đề bài cho một chu…

 
#227・

#223 - Tổng hợp 1000 bài viết từ Grokking Newsletter

Đề ra tuần này: Next PermutationBài toán cho trước một mảng các số tự nhiên. Yêu cầu sinh ra một mảng số tự nhiên khác là hoán vị tiếp theo theo tứ tự từ điển của mảng ban đầu. Ví dụ 1:Input: [1,2,3]Output: [1,3,2]Ví dụ 2:Input: [1,1,5]Output: [1,5,1]Lời giải…

 
#226・

#223 - Tăng tốc độ Redis bằng compression của DoorDash

Đề ra tuần này: Add Two Numbers IITóm tắt: Cho 2 số nguyên được biểu diễn bằng LinkedList, hãy tính tổng của 2 số và trả lại kết quả cũng là LinkedList.Ví dụ:l1 = 7 → 2 → 4 → 3l2 = 5 → 6 → 4Tổng của hai số là 7243 + 564 = 7807Biểu diễn bằng LinkedList: 7 → 8 …

 
#225・

#222 - Tìm hiểu về Data Observability

Đề ra tuần này: Fraction to Recurring DecimalCho hai số nguyên biểu thị tử số và mẫu số của một phân số, hãy trả về phân số ở định dạng chuỗi.Ví dụ:Input: numerator = 1, denominator = 2Output: "0.5"Lời giải đề bài tuần trước: Linked List Cycle II(by ndaadn)Bà…

 
#224・

221 - Tối ưu hoá thời gian đọc S3 giúp tăng hiệu suất tác vụ xử lý dữ liệu lớn

(by phucnh)Đề ra tuần này: Linked List Cycle IILời giải đề bài tuần trước: Find the Duplicate NumberBài toán yêu cầu tìm số bị lặp nhưng không được sửa đổi mảng đầu vào, và chỉ được sử dụng độ phức tạp không gian là hằng số (constrant extra space). Ta cần chú…

 
#223・

#220 - Xử lý những chú chim quậy phá bằng kỹ thuật như thế nào?

Đề ra tuần này: Find the Duplicate NumberLời giải đề bài tuần trước: Merge k Sorted ListsĐề bài yêu cầu gộp k linked-list đã được sắp xếp theo thứ tự tăng dần lại thành một linked-list duy nhất cũng được sắp xếp theo thứ tự tăng dần.Đây là bài toán mở rộng từ…

 
#222・

#219 - Triết lí Unix trong Apache Kafka và Samza

Đề ra tuần này: Merge k Sorted ListsLời giải đề bài tuần trước: House Robber IIITa có thể diễn giải đề bài toán một cách đơn giản hơn như sau, cho một cây nhị phân, tìm tập hợp các nút trong cây có tổng giá trị lớn nhất, với điều kiện không có 2 nút liên tiếp…

 
#221・

#218 - Ứng dụng Machine Learning vào bài toán định tuyến phương tiện

Đề ra tuần này: House Robber IIILời giải đề bài tuần trước: LRU CacheLRUCache là viết tắt của Least Recently Used Cache, đây là phương pháp phổ biến nhất để cập nhật cache bằng cách loại bỏ những giá trị ít được sử dụng gần đây nhất.Do đây là cache, vì vậy ta…

 
#220・

#217 - Lỗi hệ thống tại Slack và cách Dropbox chuẩn bị cho thiên tai

Đề ra tuần này: LRU CacheLời giải đề bài tuần trước: Longest String ChainĐây là một bài toán mở rộng của bài toán quy hoạch động kinh điển dãy con tăng dài nhất Longest Increasing Subsequence (gọi tắt là LIS).Gọi L(i) là độ dài dãy con tăng dài nhất ở vị trí …

 
#219・

#216 - Happy Birthday, Git!

Đề ra tuần này: Longest String ChainLời giải đề bài tuần trước: Count and SayLời giải:Nếu đã biết tới kỹ thuật nén dữ liệu Run-length encoding, bạn sẽ nhận thấy ngay rằng xâu kết quả của n = i chính là kết quả run-length encode từ xâu kết quả của n = (i - 1).…

 
#218・

#215 - Grokking phát hành Dijkstra tập 2

Qua hơn 70 trang sách, chúng tôi hy vọng sẽ mang lại cho các bạn những kiến thức bổ ích xoay quanh các chủ đề quan trọng như 🔥 Database, 🔥 Network, 🔥 Distributed System, 🔥 Memory, cũng như các lĩnh vực thú vị khác. Đây là thành quả từ sự nỗ lực rất lớn của độ…

 
#217・

#214 - Các phương pháp Migration điển hình

Serverless computing là loại hình kiến trúc đang dần được phổ biến gần đây vì dễ dùng và dễ triển khai, đặc biệt là cho các ứng dụng đơn giản hoặc MVP. Khi sử dụng các dịch vụ Google Cloud Function hay AWS Lambda, chỉ với vài thao tác đơn giản trong 15-20 phú…

 
#216・

#213 - Netflix đã cải tiến hệ thống Real-time Data Infrastructure như thế nào?

Đề ra tuần này: Maximum Frequency Stackhttps://leetcode.com/problems/maximum-frequency-stack/Lời giải đề bài tuần trước:Dựa vào đề bài, ta dễ dàng nhận ra 1 lời giải đơn giản cho bài toán này như sau: Duyệt lần lượt từng vị trí từ 0 đến n, lượng nước chứa đượ…

 
#215・

#212 - Tối ưu hóa query trong Postgres

Trong các hệ thống cơ sở dữ liệu quan hệ (relational database) truyền thống, ta có thể xem Storage Engine và Query Engine là "linh hồn" của cơ sở dữ liệu.Khi người dùng submit một query (câu lệnh truy vấn), query đó sẽ ứng với rất nhiều phiên bản Query Execut…

 
#214・

#211 - Cách Google, Twitter, và Spotify xây dựng văn hóa documentation

Góc DS tuần này giới thiệu tới bạn đọc một bài presentation về Skinny, một project cá nhân về Distributed Lock Service của Dan Lüdtke, engineer ở Google, được trình bày ở SRECon 2020. Những điểm thú vị trong bài trình bày:Giới thiệu về Paxos và các vấn đề cơ …