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.
Ý tưởng cũng dễ, tìm distance từ node tới neighbor node rồi brute force, mà não bị úng làm ko ra =((
 
Bài 3 em pass 702/716 test case, quả test cạnh chia hết chạy for n trong dfs tù quá nên TLE =(( Toang quá, mai gỡ
 
bac co code k cho em tham khao voi a
Mã:
class Solution:
    def countPairsOfConnectableServers(self, edges: List[List[int]], signalSpeed: int) -> List[int]:
        def dfs(node, parent, weight):
            res = 1 if weight % signalSpeed == 0 else 0
            for neighbor, neighborWeight in graph[node]:
                if neighbor != parent:
                    res += dfs(neighbor, node, weight + neighborWeight)
              
            return res

        n = len(edges) + 1
        graph = [[] for _ in range(n)]
        for edge in edges:
            graph[edge[0]].append([edge[1], edge[2]])
            graph[edge[1]].append([edge[0], edge[2]])

        ans = [0]*n
        for i in range(n):
            count = 0
            for neighbor, weight in graph[i]:
                countJ = dfs(neighbor, i, weight)
                ans[i] += count*countJ
                count += countJ

        return ans
Đây bác, ví dụ như ở mỗi đỉnh I có neighbor I1 I2 I3
Thì kết quả sẽ là
sum(I1, I, I2) = pairs(I1, I)*pairs(I2,I)
sum(I1, I, I2, I3 ) = sum(I1, I, I2) *pairs(I3, I)
Mở rộng ra với n đỉnh

Brute force tìm mỗi đỉnh là xong. Do cứ ngồi nghĩ cách tính distance từ đỉnh tới lá nên mình ko viết được hàm dfs, chỉ cần tìm số điểm thoả mãn yêu cầu đề bài là ok rồi =(( cay thật
 
Sửa lần cuối:
lại là đọ template mà mất hết template toàn phải gõ lại, cũng may cài FenwickTree không khó :big_smile:
 
1709436271220.png

Hardwork must be paid off các fence ơi :ah: lần đầu giải được 4 bài mừng quá hahahaha
Bài cuối để print nó ghi output limit exceed đm leetcode sida :ah: làm bug 1 phát cmnr :ah:
 
Rút kinh nghiệm lại, Lưu lại luôn template, lần sau gặp thì vác ra dùng luôn :big_smile:
template C++ linh hoạt hơn hẳn python. Được cái viết mấy cái hàm đệ quy có nhớ với python cứ thêm cái @lru_cache tiện thật, lại còn một đống trick quá tiện :amazed:
 
chắc e bị overthinking quá :sweat: . Giờ vẫn chưa nghĩ ra dùng 2 cái kia kiểu gì
Cái hàm GreatCout nó nhận vô một targeted number, tìm số element lớn hơn trong list nữa là hoàn hảo cho việc xài binary search rồi fence. Việc còn lại là maintain 1 cái sorted order bằng sortedList nữa là ngon cơm. Tính ra Time complexity chỉ là Onlogn nên mình biết là ăn được rồi.
Leetcode nó có cái củ đậu gì output limit exceed cay thế nhỉ, mình kẹp cái print vô để debug ăn ngay con bug =((
 
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.517
Quay lại
Lên đầu trang