View profile

#181 - Monitoring hiệu quả trong Microservices

Grokking Vietnam
Grokking Vietnam
Những bài viết hay
Góc Distributed System
Góc Lập Trình
Đề ra tuần này:
Tìm k số gần x nhất
Cho một mảng đã được sắp xếp tăng dần arr, hai số nguyên dương kx. Viết chương trình trả lại k số gần x nhất. Kết quả trả về phải được sắp xếp theo thứ tự tăng dần.Một số a gần với số x hơn số b nếu:
|a - x| < |b - x|, hoặc |a - x| == |b -x|a < b
Ví dụ 1:
Input: arr = [1,2,3,4,5], k = 4, x = 3
Output: [1,2,3,4]
Rằng buộc: 1 <= k <= arr.length; 1 <= arr.length <= 10^4
Các bạn có thể thử sức tại đây.
Lời giải tuần trước:
Chúng ta có thể giải bài toán này bằng nhiều cách, từ brute force, quy hoạch động, greedy, hoặc sử dụng stack. Chúng tôi xin đưa ra một lời giải tương đối đơn giản, dễ hiểu, đồng thời cũng tiết kiệm bộ nhớ như sau.
Ý tưởng cơ bản sẽ là chúng ta cần theo dõi các dấu "*", đồng thời là khi sử dụng các dấu "*" sử dụng như một ")".
Nếu gặp một dấu ")" và phía trước nó có một dấu "(" hoặc "*" thì đây có thể coi là hợp lệ. Còn nếu trước đó không có gì thì chắc chắn là lỗi.
Nếu gặp một dấu "*" và phía trước nó có một dấu "(", ta có thể dùng "*" như một dấu ")", nhưng nó có thể phá vỡ một cặp hợp lệ trong chuỗi ban đầu, do đó ta cần tăng giá trị biến đếm cho "*".
Thay vì sử dụng stack, ta có thể chỉ cần các biến đếm cho các ký tự "(""*" để tiết kiệm bộ nhớ.
Các bạn có thể xem thêm lời giải sau đây để hiểu hơn về cách làm.
Time Complexity O(N)
Time Complexity O(N)
Code & Tools
This Week Sponsors
KMS Technology là một trong những công ty dịch vụ phần mềm hàng đầu, với 12 năm hoạt động và phát triển trên thị trường Châu Âu, Mỹ, và khu vực APAC; hiện có 05 văn phòng tại Atlanta (Mỹ), TP.HCM và Đà Nẵng.
Số lượng KMSer hiện tại đã lên đến 1000+ và vẫn đang trên đà phát triển, mở rộng cho nhiều dự án lớn, quy mô toàn cầu với các chiến dịch tuyển dụng hấp dẫn, phúc lợi ấn tượng.
Nếu bạn đang tìm kiếm một cơ hội mới, thì đây là thời điểm khó bỏ lỡ với nhiều vị trí hấp dẫn cùng 1 tháng “joining bonus” dành cho ứng viên ứng tuyển và gia nhập trước 31/8/2021.
Khám phá ngay tại đây:
Quotes
Before software can be reusable it first has to be usable.
– Ralph Johnson
Did you enjoy this issue? Yes No
Grokking Vietnam
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

Ngoài ra các bạn có thể gửi feedback cho Grokking Newsletter team ở https://bit.ly/3k3Jdw5 hoặc đóng góp bài viết tại https://bit.ly/2XaBUtF

If you don't want these updates anymore, please unsubscribe here.
If you were forwarded this newsletter and you like it, you can subscribe here.
Created with Revue by Twitter.
Charmington La Pointe, 181 Cao Thang, Dist 10, Ho Chi Minh city, Viet Nam