Tất cả thử thách
Trung bình 0 đã giải Tỷ lệ chấp nhận 0%

Đường kính của cây

Một cây là một đồ thị vô hướng liên thông không có chu trình.

Một cây là một đồ thị vô hướng liên thông không có chu trình. Đường kính của cây là số cạnh lớn nhất trên một đường đi giữa hai đỉnh bất kỳ. Hãy trả về độ dài đó; bạn không cần trả về đường đi. Không có đỉnh gốc được chỉ định.

Cài đặt hàm tree_diameter(vertices, edges).

Đầu vào

vertices: Số lượng đỉnh.

edges: Các cạnh vô hướng dạng [u, v].

Đầu ra

Trả về đường kính tính theo số cạnh, không phải số đỉnh.

Ràng buộc

1 ≤ vertices ≤ 200.000. Có đúng vertices − 1 cạnh, với các đầu mút khác nhau trong khoảng 1…vertices. Đầu vào luôn tạo thành một cây. Cây chỉ có một đỉnh thì đường kính là 0.

Ví dụ

Ví dụ 1
Đầu vào:
edges = [
    [1, 2],
    [2, 3],
    [3, 4],
    [2, 5]
]
vertices = 5

Kết quả mong đợi:
expected = 3
Đầu vào:
std::vector<std::vector<long long>> edges = {
    {1, 2},
    {2, 3},
    {3, 4},
    {2, 5}
};
long long vertices = 5;

Kết quả mong đợi:
long long expected = 3;
Đầu vào:
long[][] edges = new long[][] {
    new long[] {1, 2},
    new long[] {2, 3},
    new long[] {3, 4},
    new long[] {2, 5}
};
long vertices = 5;

Kết quả mong đợi:
long expected = 3;

Giải thích

Đường đi 5–2–3–4 gồm ba cạnh. Không có đường đi nào trong cây này dài hơn.

Ví dụ 2
Đầu vào:
edges = []
vertices = 1

Kết quả mong đợi:
expected = 0
Đầu vào:
std::vector<std::vector<long long>> edges = {};
long long vertices = 1;

Kết quả mong đợi:
long long expected = 0;
Đầu vào:
long[][] edges = new long[][] {};
long vertices = 1;

Kết quả mong đợi:
long expected = 0;

Giải thích

Một đỉnh đơn lẻ không có cạnh nào, nên độ dài đường đi dài nhất là 0.

Tham khảo

Thử thách này đã được điều chỉnh cho CodeUtility. Hãy làm theo đề bài và các ràng buộc ở trên.

Học hỏi từ người khác

Giải pháp cộng đồng

Chưa có giải pháp nào được chia sẻ. Hãy giải thử thách này để đăng giải pháp đầu tiên.