thảo luận Leetcode contest, đường tới Guardian

  • Người tạo chủ đề Người tạo chủ đề freedom.9
  • Ngày bắt đầu Ngày bắt đầu
Trạng thái
Không mở để trả lời thêm.
ai lafm b2 chưa cho e xin idea với ạ lần nào mấy dạng tọa độ cũng tịt ngóm :beat_brick:
Đầu tiên bạn check xem 2 hình chữ nhật có overlap không (nếu không làm được thì lên StackOverflow tra cũng có đó)
Sau đó để tìm xem cạnh hình vuông lớn nhất fit được trong cái đoạn overlap đó là bao nhiêu
dx = min(rec1.xright, rec2.xright) - max(rec1.xleft, rec2.xleft)
dy = min(rec1.ytop,rec2.ytop) - max(rec1.ybot,rec2.ybot)
d = min(dx,dy)
area = d * d
 
Gặp mấy bài toạ độ là gãy sml luôn, nhìn vô cái trục toạ độ là rối rối đcm lại đọc thêm quả sai đề =((
Cay vãi cả đái huhu, chết mẹ rank 10k luôn rồi =((
 
Sửa lần cuối:
1708836713658.png

Cái bài 2 nó hãm =))) guardian nó cũng khóc lóc vl
 
Câu 2 viết rối mù luôn =))) Tìm hình vuông lớn nhất vừa 1 đoạn giao, rôi lại tìm hình vuông to nhất trong đống đấy =)))))) Top 10 cũng thấy submit sai bài này 1-2 phát =)))
 
Câu 2 viết rối mù luôn =))) Tìm hình vuông lớn nhất vừa 1 đoạn giao, rôi lại tìm hình vuông to nhất trong đống đấy =)))))) Top 10 cũng thấy submit sai bài này 1-2 phát =)))
Câu 2 nhìn rõ ràng là brute force rồi mà cái trick lấy max(bottomLeft) + min(topRight) ảo quá, nó đúng với tất cả các trường hợp giao nhau luôn đm.
Mình lúc đầu cũng làm như thế nhưng ko thèm chứng minh là nó đúng tất cả trường hợp nên rối mù luôn. Còn đọc đề sai nữa đm.
Toang quá

via theNEXTvoz for iPhone
 
Câu 2 nhìn rõ ràng là brute force rồi mà cái trick lấy max(bottomLeft) + min(topRight) ảo quá, nó đúng với tất cả các trường hợp giao nhau luôn đm.
Mình lúc đầu cũng làm như thế nhưng ko thèm chứng minh là nó đúng tất cả trường hợp nên rối mù luôn. Còn đọc đề sai nữa đm.
Toang quá

via theNEXTvoz for iPhone
1708921220116.png

Em cũng ăn 2 gậy câu này, lần đầu nhầm là tìm diện tích giao nhau nhỏ nhất, lần 2 nhầm là tìm diện tích nhỏ nhất vừa mọi vùng giao =))) Mấy testcases cơ bản cũng không cover được case này, toang
 
Thấy anh em thảo luận sôi nổi quá, nếu tôi gạ một buổi offline có ai đi không?
 
Dev gà xin ý kiến mấy bác về tối ưu giải thuật. :sweat:
———-
Em có một file với định dạng mỗi dòng như sau: < key> SPACE < value>. Mục tiêu là tìm N key với giá trị lớn nhất, yêu cầu là đọc file với vài triệu dòng.
Ý tưởng của em là đọc mỗi lần 100k dòng, rồi tìm ra N key value lớn nhất, lưu ở dạng dict (đã xử lí trùng key bằng cách append value vào list). Sau đó em sẽ có được M nhóm, rồi tổng hợp M nhóm đó để N key với maximum value.
em cảm giác ý tưởng em nó đơn giản cũng không tối ưu thuật toán lắm, nhờ các bậc cao nhận trải qua rồi cho em vài gợi ý. Sẽ hậu tạ ạ :too_sad:
 
Dev gà xin ý kiến mấy bác về tối ưu giải thuật. :sweat:
———-
Em có một file với định dạng mỗi dòng như sau: < key> SPACE < value>. Mục tiêu là tìm N key với giá trị lớn nhất, yêu cầu là đọc file với vài triệu dòng.
Ý tưởng của em là đọc mỗi lần 100k dòng, rồi tìm ra N key value lớn nhất, lưu ở dạng dict (đã xử lí trùng key bằng cách append value vào list). Sau đó em sẽ có được M nhóm, rồi tổng hợp M nhóm đó để N key với maximum value.
em cảm giác ý tưởng em nó đơn giản cũng không tối ưu thuật toán lắm, nhờ các bậc cao nhận trải qua rồi cho em vài gợi ý. Sẽ hậu tạ ạ :too_sad:
Mình vừa comment bên kia xong thì xóa thớt à.
Xài 1 min heap lưu N phần tử, duyệt từng file add vô heap. Số phần tử trong heap mà lớn hơn N thì pop phần tử đầu tiên trong heap ra.
Time complexity O(max(10tr, nlogn) space O(n) đó là lí do tại sao nên luyện leetcode và học Dsa :shame:
via theNEXTvoz for iPhone
 
Mình vừa comment bên kia xong thì xóa thớt à.
Xài 1 min heap lưu N phần tử, duyệt từng file add vô heap. Số phần tử trong heap mà lớn hơn N thì pop phần tử đầu tiên trong heap ra.
Time complexity O(max(10tr, nlogn) space O(n) đó là lí do tại sao nên luyện leetcode và học Dsa :shame:
via theNEXTvoz for iPhone
Cám ơn thím nha, chỗ kia là duyệt từng line đúng không? :cry:
 
Cám ơn thím nha, chỗ kia là duyệt từng line đúng không? :cry:
Ko duyệt từng file thì làm gì còn cách nào lấy dữ liệu từng file, dự đoán tương lai hả :canny:
Optimize chỗ duyệt file thì muốn nhanh dùng multi threading, cho vô dó 30 cái workers, segment 10tr files thành 10tr/30 files cho nhanh.
Còn chỗ min heap thì phải xử lí concurrency để tránh conflict giữa việc đọc + lưu dữ liệu vô heap từ các threads.
 
Trạng thái
Không mở để trả lời thêm.

Thống kê chủ đề

Ngày tạo
freedom.9,
Người trả lời cuối
freedom.9,
Trả lời
2.480
Lượt xem
130.378
Quay lại
Lên đầu trang